91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Maven打包構建Docker鏡像并推送到倉庫

發布時間:2023-04-08 15:51:06 來源:億速云 閱讀:161 作者:iii 欄目:開發技術

這篇文章主要介紹了怎么使用Maven打包構建Docker鏡像并推送到倉庫的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用Maven打包構建Docker鏡像并推送到倉庫文章都會有所收獲,下面我們一起來看看吧。

    一,服務器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文件夾下。

    關于“怎么使用Maven打包構建Docker鏡像并推送到倉庫”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用Maven打包構建Docker鏡像并推送到倉庫”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    衢州市| 太白县| 靖远县| 上林县| 英吉沙县| 宁乡县| 惠来县| 龙川县| 晴隆县| 通河县| 盈江县| 繁峙县| 江永县| 陵水| 论坛| 丰台区| 双鸭山市| 内乡县| 张家界市| 慈利县| 奉节县| 肇庆市| 郸城县| 辉县市| 香河县| 泸西县| 平塘县| 万载县| 杭锦后旗| 葵青区| 武汉市| 淮安市| 平顺县| 奉节县| 武强县| 双柏县| 商都县| 华蓥市| 龙游县| 洱源县| 崇礼县|