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>