利用dockerfile-maven-plugin插件在springboot中上傳鏡像到遠程倉庫
這篇文章講解在開發工具中把打包好的jar編譯成docker鏡像,上傳到遠程的docker服務器,以及根據鏡像創建測試docker容器,驗證springboot程序,以及Dockerfile配置
如何生成證書以及docker服務器開啟遠程端口,參考這篇文章:https://www.cnblogs.com/morgan363/p/12029783.html
1、Windows下配置環境變量
增加三個系統環境變量,在環境變量->系統變量->新建
DOCKER_HOST=tcp://192.168.74.82:2376
DOCKER_CERT_PATH=證書路徑
DOCKER_TLS_VERIFY=1
備注: 1)證書路徑目錄下面有三個證書文件 ca.pem、cert.pem、key.pem 2)DOCKER_HOST中的ip是docker服務器的ip


2、springboot項目使用dockerfile-maven-plugin插件
pom.xml文件
<plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.4.3</version> <!--<executions> <execution> <id>default</id> <goals> <goal>build</goal> <goal>push</goal> </goals> </execution> </executions>--> <configuration> <repository>121.42.162.203/${project.artifactId}</repository> <tag>${project.version}</tag> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> <JAR_EXPOSE>8082</JAR_EXPOSE> </buildArgs> </configuration> </plugin>
注:repository屬性里的ip要修改成自己的docker服務器ip
springboot項目的根目錄新建Dockerfile文件,復制下面的代碼

FROM openjdk:8-jre ARG JAR_EXPOSE=8082 EXPOSE $JAR_EXPOSE ARG JAR_FILE ADD $JAR_FILE /app.jar ENTRYPOINT ["java", "-jar", "-Duser.timezone=GMT+08", "/app.jar"]
3、執行maven命令上傳鏡像
mvn clean package dockerfile:build -Dmaven.test.skip=true


4、maven命令成功執行后可以在docker服務器看到鏡像 docker images

5、docker run這個springboot編譯的docker鏡像
docker run --name countgame -d -p 8082:8082 6f0d
注:后面的6f0d是image_id,在docker images的后面可以看到
6、docker ps可以看到容器已經啟動

7、查看容器啟動日志,日志正常
docker logs --tail 300 -f countgame
8、用curl測試程序是否正常,可以看到有內容返回,返回的網頁正常
curl http://127.0.0.1:8082/countgame/user/toGame

注:
1.修改了系統變量需要重啟開發工具才能生效,一開始提示上傳鏡像失敗,看了錯誤是上傳的ip還是默認的127.0.0.1,重啟IDEA或者eclipse就可以了
摘自:https://blog.csdn.net/qq_21187515/article/details/90302026
