成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

容器化開(kāi)發(fā)環(huán)境 - Dockerize

cnsworder / 3079人閱讀

摘要:為了不讓別人痛苦,更不想讓自己痛苦,請(qǐng)容器化開(kāi)發(fā)環(huán)境吧,讓我們享受一鍵部署開(kāi)發(fā)環(huán)境的痛快吧。接下的例子依賴的環(huán)境和,請(qǐng)移步自行安裝。

有沒(méi)有過(guò)項(xiàng)目之間各種Java版本開(kāi)發(fā)環(huán)境切換的場(chǎng)景;有沒(méi)有過(guò)githubclone回來(lái)的代碼庫(kù),由于各種開(kāi)發(fā)環(huán)境依賴無(wú)法運(yùn)行的問(wèn)題;有沒(méi)有過(guò)進(jìn)入一個(gè)新項(xiàng)目時(shí)各種配開(kāi)發(fā)環(huán)境到深夜的經(jīng)歷...Come On!為什么會(huì)這樣,一切都是開(kāi)發(fā)環(huán)境問(wèn)題。為了不讓別人痛苦,更不想讓自己痛苦,請(qǐng)容器化開(kāi)發(fā)環(huán)境吧,讓我們享受一鍵部署開(kāi)發(fā)環(huán)境的痛快吧。

用什么容器化呢?當(dāng)然是Docker啦,輕量級(jí)又好用,又流行,最關(guān)鍵點(diǎn)是本人僅Docker比較熟悉,所以就拿它來(lái)搞起啦。

Quick Start

接下的例子依賴的Docker環(huán)境和MAC,請(qǐng)移步 Install Docker Engine 自行安裝。

docker-machine

docker-compose

...

(dockerize) Unable to get the latest Boot2Docker ISO release version:  Error getting a version tag from the Github API response.
(dockerize) You may be getting rate limited by Github.

// 如果在安裝過(guò)程遇到上述類似的問(wèn)題,可以嘗試方式解決:

通過(guò)瀏覽器下載 boot2docker 鏡像 https://github.com/boot2docker/boot2docker/releases/download/v1.10.3/boot2docker.iso
將鏡像移動(dòng)到 ~/.docker/machine/cache/ 目錄下
Setup Hello Dockerize

使用Gradle初始化一個(gè) spring-boot DEMO,build.gradle 文件如下:

group "com.xxx.hello.dockerize"
version "1.0.0"

buildscript {
    repositories {
        jcenter()
        maven { url "http://repo.spring.io/snapshot" }
        maven { url "http://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")
    }
}

apply plugin: "idea"
apply plugin: "java"
apply plugin: "spring-boot"

sourceCompatibility = 1.8

repositories {
    jcenter()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

ext {
    junitVersion = "4.11"
}

dependencies {

    compile "org.springframework.boot:spring-boot-starter-jersey"

    testCompile "junit:junit:$junitVersion"
}

實(shí)現(xiàn)hello-dockerize的API,創(chuàng)建以下文件:

Application.java
JerseyConfig.java
HelloDockerizeResource.java

Dockerize

為可以讓 DEMO 可以運(yùn)行容器中,需要一個(gè)Dockerfile來(lái)配置 DEMO 在容器中能正常運(yùn)行的環(huán)境:

FROM ubuntu:14.04
RUN apt-get update

ENV VERSION 8
ENV UPDATE 66
ENV BUILD 17
ENV JAVA_HOME /usr/lib/jvm/java-${VERSION}-oracle
ENV JRE_HOME ${JAVA_HOME}/jre

RUN apt-get install ca-certificates curl 
        gcc libc6-dev libssl-dev make 
        -y --no-install-recommends

RUN    curl --silent --location --retry 3 --cacert /etc/ssl/certs/GeoTrust_Global_CA.pem 
    --header "Cookie: oraclelicense=accept-securebackup-cookie;" 
    http://download.oracle.com/otn-pub/java/jdk/"${VERSION}"u"${UPDATE}"-b"${BUILD}"/server-jre-"${VERSION}"u"${UPDATE}"-linux-x64.tar.gz 
    | tar xz -C /tmp

RUN    mkdir -p /usr/lib/jvm && mv /tmp/jdk1.${VERSION}.0_${UPDATE} "${JAVA_HOME}"

RUN apt-get install -y openssl

RUN apt-get remove --purge --auto-remove -y 
        gcc 
        libc6-dev 
        libssl-dev 
        make

RUN    apt-get autoclean && apt-get --purge -y autoremove

RUN    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN update-alternatives --install "/usr/bin/java" "java" "${JRE_HOME}/bin/java" 1 && 
    update-alternatives --install "/usr/bin/javac" "javac" "${JAVA_HOME}/bin/javac" 1 && 
    update-alternatives --set java "${JRE_HOME}/bin/java" && 
    update-alternatives --set javac "${JAVA_HOME}/bin/javac"

WORKDIR /hello-dockerize
EXPOSE 8080
CMD ["bash"]

為了以后可以更好的管理容器的依賴和更新,Docker Compose是一個(gè)不錯(cuò)的選擇。創(chuàng)建配置文件docker-compose.yml:

web:
  build: ./dockerize
  environment:
    - LANG=C.UTF-8
    - TERM=xterm
    - DEBUG=true
  ports:
    - "8080:8080"
  volumes:
    - .:/hello-dockerize

啟動(dòng)容器服務(wù):
在 DEMO 目錄下執(zhí)行:

$ docker-compose run --service-ports web

上述命令執(zhí)行成功后,將會(huì)進(jìn)入容器內(nèi),顯示如:

root@7b438758ccae:/hello-dockerize#

在容器中啟動(dòng)服務(wù):

root@7b438758ccae:/hello-dockerize# ./gradlew bootRun

為了在容器外可以訪問(wèn)容器內(nèi)部的服務(wù),可以通過(guò)docker-machine ip machine-name獲取 machine 的 IP,修改/etc/hostsmachine IP綁定上dockerhost的域名,再通過(guò)瀏覽器訪問(wèn)http://dockerhost:8080/hello-dockerize,頁(yè)面將會(huì)出現(xiàn)Hello Dockerize!

  

DEMO REPO: hello-dockerize,你只需要 clone 到本地,然后執(zhí)行 docker-compose run --service-ports web, DEMO 開(kāi)發(fā)環(huán)境將會(huì)快速構(gòu)建完畢,秒級(jí)的體驗(yàn),不容錯(cuò)過(guò)~~~

原文鏈接

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/26737.html

相關(guān)文章

  • 容器開(kāi)發(fā)環(huán)境 - 如何斷點(diǎn)調(diào)試容器中的應(yīng)用

    摘要:上一篇容器化開(kāi)發(fā)環(huán)境已經(jīng)簡(jiǎn)單的介紹了如何容器化開(kāi)發(fā)環(huán)境。學(xué)會(huì)斷點(diǎn)調(diào)試容器中的應(yīng)用,再也不用為我那烏黑亮麗的頭發(fā)著急啦原文鏈接 上一篇容器化開(kāi)發(fā)環(huán)境已經(jīng)簡(jiǎn)單的介紹了如何容器化開(kāi)發(fā)環(huán)境。在開(kāi)發(fā)過(guò)程中,很多時(shí)候都需要通過(guò)斷點(diǎn)的方式來(lái)調(diào)試程序或定位BUG,那么如何斷點(diǎn)調(diào)試運(yùn)行在容器中的應(yīng)用呢??? 容器就像一個(gè)虛擬機(jī),就像一個(gè)遠(yuǎn)程的服務(wù)器,要斷點(diǎn)調(diào)試容器中的應(yīng)用,就像要斷點(diǎn)調(diào)試虛擬機(jī)和遠(yuǎn)程的服...

    wean 評(píng)論0 收藏0
  • 容器開(kāi)發(fā)環(huán)境 - 應(yīng)用和數(shù)據(jù)庫(kù)隔離

    摘要:上一篇容器化開(kāi)發(fā)環(huán)境數(shù)據(jù)庫(kù)連接和遷移分享了關(guān)于如何給容器中的應(yīng)用創(chuàng)建數(shù)據(jù)庫(kù)連接,接下來(lái)將分享一下如何將數(shù)據(jù)庫(kù)從應(yīng)用容器中分離出來(lái)。 上一篇容器化開(kāi)發(fā)環(huán)境 - 數(shù)據(jù)庫(kù)連接和遷移分享了關(guān)于如何給容器中的應(yīng)用創(chuàng)建數(shù)據(jù)庫(kù)連接,接下來(lái)將分享一下如何將數(shù)據(jù)庫(kù)從應(yīng)用容器中分離出來(lái)。 為什么要進(jìn)行分離?當(dāng)應(yīng)用和數(shù)據(jù)庫(kù)在同一個(gè)容器中運(yùn)行時(shí),也就意味著,應(yīng)用和數(shù)據(jù)庫(kù)的生命周期捆綁在了一起,應(yīng)用和數(shù)據(jù)庫(kù)的運(yùn)...

    cppowboy 評(píng)論0 收藏0
  • 容器開(kāi)發(fā)環(huán)境 - 數(shù)據(jù)庫(kù)連接和遷移

    摘要:在容器化開(kāi)發(fā)環(huán)境中分享了如何容器化本地的開(kāi)發(fā)環(huán)境。對(duì)于一個(gè)應(yīng)用,數(shù)據(jù)庫(kù)似乎是必不可少的東西。下面會(huì)通過(guò)例子來(lái)介紹一下如何一個(gè)容器中的數(shù)據(jù)庫(kù)。例子將會(huì)使用的技術(shù)棧在目錄下新建文件,用于控制數(shù)據(jù)庫(kù)的啟動(dòng)。 在 容器化開(kāi)發(fā)環(huán)境 中分享了如何容器化本地的開(kāi)發(fā)環(huán)境。對(duì)于一個(gè)Web應(yīng)用,數(shù)據(jù)庫(kù)似乎是必不可少的東西。下面會(huì)通過(guò)例子來(lái)介紹一下如何Setup一個(gè)容器中的數(shù)據(jù)庫(kù)。例子將會(huì)使用的技術(shù)棧: ...

    Jensen 評(píng)論0 收藏0
  • 一種 Dockerize 應(yīng)用的簡(jiǎn)單方式

    摘要:為了證明模板,我們可以使用環(huán)境變量配置讓這個(gè)變成一個(gè)更通用的代理服務(wù)器。我們將定義環(huán)境變量作為一個(gè)站點(diǎn)的代理。當(dāng)這個(gè)容器使用這個(gè)環(huán)境變量啟動(dòng),將使用它來(lái)生成一個(gè)的路徑。 一種 Dockerize 應(yīng)用的簡(jiǎn)單方式 標(biāo)簽(空格分隔): Docker dockerize 作者是 jasonwilder。原文地址是 A Simple Way to Dockerize Applica...

    ddongjian0000 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<