使用docker-maven-plugin插件生成docker鏡像


docker-maven-plugin插件官網地址:https://github.com/spotify/docker-maven-plugin

1、准備一台Linux服務,並安裝docker。參考:CentOS安裝Docker

當前用於測試的docker版本為20.10.12

2、開啟Docker的遠程訪問端口2375(注意將這個端口添加到防火牆白名單中

修改文件/usr/lib/systemd/system/docker.service,在[Service]->>ExecStart位置添加配置-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

vi /usr/lib/systemd/system/docker.service

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

執行如下命令重啟docker服務

systemctl daemon-reload #重新加載配置
systemctl restart docker #重啟docker服務

3、在maven項目中添加插件

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.2</version>
    <configuration>
        <!-- Dockerfile定義 -->
        <baseImage>openjdk:8-jdk-alpine</baseImage>
        <maintainer>zhi.leaf@foxmail.com</maintainer>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
        <workdir>/</workdir>
        <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>

        <!-- 生成鏡像,運行docker:build執行 -->
        <dockerHost>http://192.168.159.130:2375</dockerHost>
        <forceTags>true</forceTags>
        <imageName>zyz/${project.artifactId}</imageName>
        <!-- 設置標簽,可以設置多個,如:latest或當前版本號${project.version} -->
        <imageTags>
            <imageTag>${project.version}</imageTag>
        </imageTags>
    </configuration>
</plugin>

參數說明:

     baseImage:基礎鏡像

     forceTags:覆蓋原來的鏡像

     dockerHost:docker遠程服務主機

4、運行mvn docker:build構建docker鏡像

如果出現提示,說明鏡像構建成功

登錄Linux服務,可以查看到剛才構建的鏡像。

6、將構建命令綁定到maven的生命周期中,這樣我們就可以在maven打包的時候就可以構建鏡像了

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.2</version>
    <!-- 將Docker命令綁定到Maven的生命周期 -->
    <executions>
        <execution>
            <id>build-image</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
    ...
    </configuration>
</plugin>

 


免責聲明!

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



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