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


可以參考博客:https://blog.csdn.net/aixiaoyang168/article/details/77453974

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

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

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

 

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

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

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

在pom.xml中引入該插件

復制代碼
<!-- 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.

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>
復制代碼

 

二、使用

創建鏡像

mvn clean package docker:build

推送鏡像到Registry

mvn clean package docker:build -DpushImage

推送指定tag的鏡像到Registry

mvn clean package docker:build -DpushImageTag

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM