使用Maven插件構(gòu)建與發(fā)布Docker鏡像

環(huán)境

步驟

1. 編輯POM文件

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>dockerfile-maven-plugin</artifactId>
    <version>1.4.4</version>
    <executions>
        <execution>
            <id>tag-latest</id>
            <phase>deploy</phase>
            <goals>
                <goal>build</goal>
                <goal>tag</goal>
                <goal>push</goal>
            </goals>
            <configuration>
                <tag>latest</tag>
            </configuration>
        </execution>
        <execution>
            <id>tag-version</id>
            <phase>deploy</phase>
            <goals>
                <goal>build</goal>
                <goal>tag</goal>
                <goal>push</goal>
            </goals>
            <configuration>
                <tag>${project.version}</tag>
            </configuration>
        </execution>
    </executions>
    <configuration>
        <!--子用戶名@企業(yè)別名 或 子用戶名@主賬號(hào)UID-->
        <username>鏡像倉(cāng)庫(kù)用戶名</username>
        <!--在容器鏡像服務(wù)控制臺(tái)"設(shè)置Registry登陸密碼"-->
        <password>鏡像倉(cāng)庫(kù)密碼</password>
        <!--registry.cn-hangzhou.aliyuncs.com/namespace/repositoryname-->
        <repository>鏡像倉(cāng)庫(kù)地址</repository>
        <tag>latest</tag>
        <buildArgs>
            <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
        </buildArgs>
    </configuration>
</plugin>

2. 編輯Dockerfile

FROM java:8-jdk-alpine

ARG JAR_FILE
ADD target/${JAR_FILE} app.jar

EXPOSE 8080

ENTRYPOINT ["/usr/bin/java", "-jar", "/app.jar"]

3. 執(zhí)行構(gòu)建命令

先查看docker環(huán)境變量

$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\shiji\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"

再通過命令行構(gòu)建

# 不設(shè)置環(huán)境變量會(huì)報(bào)錯(cuò):
# Connect to localhost:2375 failed: Connection refused
set DOCKER_HOST=https://192.168.99.100:2376
set DOCKER_CERT_PATH=C:\Users\shiji\.docker\machine\machines\default

# 生成jar包
mvn package -Dmaven.test.skip=true

# build image
mvn dockerfile:build

# push image
mvn dockerfile:push@tag-version
mvn dockerfile:push@tag-latest

參考資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 以下原文轉(zhuǎn)載于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend閱讀 7,774評(píng)論 0 17
  • 使用Spring Boot編寫了一個(gè)微服務(wù)后,如何將構(gòu)建應(yīng)用并打包成docker鏡像,推送到docker倉(cāng)庫(kù),以供...
    billJiang閱讀 35,686評(píng)論 2 20
  • 初看到《方太儒道》這本書,有些驚訝,儒家思想怎么會(huì)與現(xiàn)在企業(yè)的管理理念并列在一起呢?是不是像大多數(shù)公司一樣光有口號(hào)...
    夢(mèng)不落的腳印閱讀 1,540評(píng)論 0 0
  • 創(chuàng)業(yè)的三年,我的工作和生活已經(jīng)完全的融合了,先生也陪伴一起,沒有更多的要求了,更不需要去想什么“平衡”。我做著自己...
    朱泓默閱讀 354評(píng)論 7 9

友情鏈接更多精彩內(nèi)容