IDEA推送docker镜像到私服/利用dockerfile-maven-plugin插件在springboot中上传镜像到远程的docker服务器、远程仓库

14 篇文章 260 订阅

利用dockerfile-maven-plugin插件在springboot中上传镜像到远程仓库
这篇文章讲解在开发工具中把打包好的jar编译成docker镜像,上传到远程的docker服务器,以及根据镜像创建测试docker容器,验证springboot程序,以及Dockerfile配置
在这里插入图片描述
如何生成证书以及docker服务器开启远程端口,参考这篇文章:
https://blog.csdn.net/qq_21187515/article/details/90262324

  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

在这里插入图片描述在这里插入图片描述

注:改了系统环境变量,我们的编译器要关闭后重新启动,否则这环境变量没有生效,按下面的推送操作到仓库会报错:错误信息大概是ssl认证失败,提示java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: javax.net.ssl.SSLException,这时重启即可解决

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:5000/${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>

注:
1.repository属性里的ip要修改成自己的docker私有仓库ip和端口号
2.如果还没有搭建docker仓库的话,参考:docker私有仓库搭建

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"]
  1. 执行maven命令上传镜像
    mvn clean package dockerfile:build dockerfile:push -Dmaven.test.skip=true
    在这里插入图片描述

    注:
    1.上面的dockerfile:build dockerfile:push的意思是build先上传项目在docker守护进程的服务器生成镜像,push推送镜像到docker的私有仓库
    2. -Dmaven.test.skip=true的意思是跳过测试用例
    3. 不想执行上面的maven命令的话,也可以直接在dockerfile的插件上先双击dockerfile:build,再双击dockerfile:push
    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述

  2. maven命令成功执行后可以在docker服务器看到镜像 docker images
    在这里插入图片描述

  3. 在docker的私有仓库可以看到镜像已经推到仓库
    在这里插入图片描述

  4. docker run这个springboot编译的docker镜像

docker run --name countgame -d -p 8082:8082 6f0d

注:后面的6f0d是image_id,在docker images的后面可以看到

  1. docker ps可以看到容器已经启动
    在这里插入图片描述
  2. 查看容器启动日志,日志正常
docker logs --tail 300 -f countgame

在这里插入图片描述

  1. 用curl测试程序是否正常,可以看到有内容返回,返回的网页正常
curl http://127.0.0.1:8082/countgame/user/toGame

在这里插入图片描述

注:
1.修改了系统变量需要重启开发工具才能生效,一开始提示上传镜像失败,看了错误是上传的ip还是默认的127.0.0.1,重启IDEA或者eclipse就可以了

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值