日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 一,服務器Docker配置
  • 二,本地項目maven配置
    • 2.1 pom.xml
    • 2.2 dockerfile
    • 2.3 驗證
    • 2.4 統一dockerfile
  • 總結

    對于開發完成的服務要發布至服務器Docker時,我剛學習了解Docker時構建鏡像方式是將我的本地服務先通過maven打包稱為jar包,然后再上傳至我的服務器上,通過Dockerfile將其構建成為鏡像。

    后來才了解了直接通過maven命令直接打包構建的方式,以下是完成這一操作的步驟。

    一,服務器Docker配置

    修改daemon.json文件,開放端口2375

    "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]

    我的文件如下所示:

    {
    ? ?? ?"insecure-registries":["10.xx.xx.xx:5000"],
    ?? ?"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
    }
    {
    "graph":"/Data/docker"
    }

    二,本地項目maven配置

    2.1 pom.xml

    在項目的pom文件引入docker-maven-plugin插件

    <plugin>
    ? ? ? ? ? ? ? ? <!-- https://mvnrepository.com/artifact/com.spotify/docker-maven-plugin -->
    ? ? ? ? ? ? ? ? <groupId>com.spotify</groupId>
    ? ? ? ? ? ? ? ? <artifactId>docker-maven-plugin</artifactId>
    ? ? ? ? ? ? ? ? <version>1.2.2</version>
    ? ? ? ? ? ? ? ? <executions>
    ? ? ? ? ? ? ? ? ? ? <!-- 當mvn執行install操作的時候,執行docker的build和push -->
    ? ? ? ? ? ? ? ? ? ? <execution>
    ? ? ? ? ? ? ? ? ? ? ? ? <id>build</id>
    ? ? ? ? ? ? ? ? ? ? ? ? <phase>install</phase>
    ? ? ? ? ? ? ? ? ? ? ? ? <goals>
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>build</goal>
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? <!-- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<goal>push</goal>-->
    ? ? ? ? ? ? ? ? ? ? ? ? </goals>
    ? ? ? ? ? ? ? ? ? ? </execution>
    ? ? ? ? ? ? ? ? </executions>
    ? ? ? ? ? ? ? ? <configuration>
    ? ? ? ? ? ? ? ? ? ? <!-- 連接到 帶docker環境的linux服務器 編譯image -->
    ? ? ? ? ? ? ? ? ? ? <dockerHost>http://10.xx.xx.xx:2375</dockerHost>
    
    ? ? ? ? ? ? ? ? ? ? <!--格式:私有倉庫/鏡像名稱:版本號, 如果要執行push操作, 那么鏡像名稱必須為私有倉庫為前綴,不然無效。-->
    ? ? ? ? ? ? ? ? ? ? <imageName>10.xx.xx.xx:5000/${project.artifactId}:${docker.tag}</imageName>
    
    ? ? ? ? ? ? ? ? ? ? <!--指定dockerfile文件路徑-->
    ? ? ? ? ? ? ? ? ? ? <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
    
    ? ? ? ? ? ? ? ? ? ? <!-- 指定jar包路徑,這里對應Dockerfile中復制 jar 包到 docker 容器指定目錄配置,也可以寫到 Docokerfile 中 -->
    ? ? ? ? ? ? ? ? ? ? <resources>
    ? ? ? ? ? ? ? ? ? ? ? ? <resource>
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? <targetPath>/</targetPath>
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? <directory>${project.build.directory}</directory>
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? <include>${project.build.finalName}.jar</include>
    ? ? ? ? ? ? ? ? ? ? ? ? </resource>
    ? ? ? ? ? ? ? ? ? ? </resources>
    
    ? ? ? ? ? ? ? ? ? ? <!--跳過測試-->
    
    ? ? ? ? ? ? ? ? ? ? <!-- push到 docker hub 開始 -->
    ? ? ? ? ? ? ? ? ? ? <!-- serverId 這個是配置在maven的setting.xml中私服的登錄賬戶信息-->
    ? ? ? ? ? ? ? ? ? ? <!-- ? ? ? ? ? ? ? ? ? ?<serverId>docker-hub</serverId>-->
    ? ? ? ? ? ? ? ? ? ? <retryPushCount>3</retryPushCount>
    ? ? ? ? ? ? ? ? ? ? <retryPushTimeout>2000</retryPushTimeout>
    ? ? ? ? ? ? ? ? ? ? <registryUrl>10.xx.xx.xx:5000</registryUrl>
    ? ? ? ? ? ? ? ? ? ? <!-- 是否自動推送到Registry Server, 建議手動推送 -->
    ? ? ? ? ? ? ? ? ? ? <pushImage>${docker.push}</pushImage>
    ? ? ? ? ? ? ? ? ? ? <!-- push到 docker hub 結束 -->
    ? ? ? ? ? ? ? ? </configuration>
    ? ? ? ? ? ? </plugin>

    重要配置解釋:

    • dockerHost:docker所在服務器的ip和開放的端口
    • imageName:最終構建的鏡像名稱
    • dockerDirectory:本地dockerfile文件存放路徑
    • targetPath:本地jar包生成位置
    • registryUrl:服務器docker的倉庫地址
    • pushImage:是否在構建鏡像后同時推送到Docker倉庫

    2.2 dockerfile

    在本地項目的src/main下創建docker目錄,在docker目錄下創建dockerfile文件

    FROM 10.xx.xx.xx:5000/java
    VOLUME /tmp
    ENV LANG C.UTF-8
    COPY *.jar app.jar
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime?
    RUN echo "Asia/Shanghai" > /etc/timezone?
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Djava.util.Arrays.useLegacyMergeSort=true", "-jar","app.jar"]

    2.3 驗證

    此時,對該項目進行mvn install時,相當于會同時進行docker:build的動作,將本地項目jar包構建成鏡像到服務器中

    2.4 統一dockerfile

    如果每個服務的鏡像構建沒有差異,可以將dockerfile從子項目中抽出來,就不需要在每一個項目模塊中都創建相同的文件,直接放在項目根路徑下就可以進行通用,同時修改pom配置

    <!--指定dockerfile文件路徑-->
    <dockerDirectory>${project.parent.basedir}/docker</dockerDirectory>

    此時的dockerfile存儲位置為項目父級目錄的docker文件夾下。

    總結

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。

    分享到:
    標簽:倉庫 打包 構建 送到 鏡像
    用戶無頭像

    網友整理

    注冊時間:

    網站:5 個   小程序:0 個  文章:12 篇

    • 51998

      網站

    • 12

      小程序

    • 1030137

      文章

    • 747

      會員

    趕快注冊賬號,推廣您的網站吧!
    最新入駐小程序

    數獨大挑戰2018-06-03

    數獨一種數學游戲,玩家需要根據9

    答題星2018-06-03

    您可以通過答題星輕松地創建試卷

    全階人生考試2018-06-03

    各種考試題,題庫,初中,高中,大學四六

    運動步數有氧達人2018-06-03

    記錄運動步數,積累氧氣值。還可偷

    每日養生app2018-06-03

    每日養生,天天健康

    體育訓練成績評定2018-06-03

    通用課目體育訓練成績評定