docker(六) 使用docker-maven-plugin插件構建docker鏡像(已過期)

能夠參考博客:https://blog.csdn.net/aixiaoyang168/article/details/77453974
java

docker-maven-plugin官網推薦在新項目中使用dockerfile-maven來構建鏡像。git

docker-maven-plugin的Github地址:https://github.com/spotify/docker-maven-plugingithub

dockerfile-maven的Github地址:https://github.com/spotify/dockerfile-mavendocker

 

1、 使用docker-maven-plugin構建鏡像maven

docker-maven-plugin有兩種使用方式,一種是使用Dockerfile文件,一種是不使用Dockerfile文件。tcp

1.在 POM中指定構建信息(不使用Dockerfile文件)ui

在pom.xml中引入該插件spa

<!-- docker-maven-plugin插件(不帶Dockerfile文件) -->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.13</version>
    <configuration>
        <!--用於指定鏡像名稱-->
        <imageName>${project.name}:${project.version}</imageName>
        <!--用於指定基礎鏡像,至關於Dockerfile中的FROM指令-->
        <baseImage>java</baseImage>
        <!--至關於Dockerfile的ENTRYPOINT指令-->
        <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
        <!--是否跳過docker build-->
        <skipDockerBuild>true</skipDockerBuild>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <!--用於指定須要複製的根目錄,${project.build.directory}表示target目錄-->
                <directory>${project.build.directory}</directory>
                <!--用於指定須要複製的文件。${project.build.finalName}.jar指的是打包後的jar包文件。-->
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

默認狀況下,該插件經過訪問localhost:2375來鏈接本地docker,能夠經過設置DOCKER_HOST 環境變量來鏈接docker..net

DOCKER_HOST=tcp://<host>:2375

2.使用Dockerfile文件插件

若是使用Dockerfile文件,必須指定dockerDirectory元素,那麼 baseImage, maintainer, cmd and entryPoint這些元素也會被忽略。dockerDirectory元素所指定的內容將被複制到${project.build.directory}/docker下,resources元素則會複製除此以外的其它文件,例如項目jar文件。

<!--docker-maven-plugin插件(帶Dockerfile文件)-->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.13</version>
    <configuration>
        <imageName>${project.name}:${project.version}</imageName>
        <!--Dockerfile文件位置-->
        <dockerDirectory>docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

 

2、使用

建立鏡像

mvn clean package docker:build

推送鏡像到Registry

mvn clean package docker:build -DpushImage

推送指定tag的鏡像到Registry

mvn clean package docker:build -DpushImageTag

3、綁定Docker 命令到 Maven 各個階段

相關文章
相關標籤/搜索