这里我们需要把镜像上传到dockerhub上,因此这里我们需要把java项目打包成镜像,然后上传上去。所以这里我们先去dockerhub上创建3个仓库,这里我们已经创建好了
接下来我们就要开始打包并且上传镜像了。下面挨个介绍:
1)打包并上传shop-gateway镜像
我们在shop-gateway项目下创建一个dockerfile文件:
然后把打包的信息写入到这个Dockerfile里面
示例如下:
FROM openjdk:8-jdk-alpine ADD target/shop-gateway-1.0.jar /app.jar EXPOSE 8060 ENTRYPOINT ["java","-jar","app.jar"] ENV TZ Asia/Shanghai
然后我们把项目上传到服务器上,使用
mvn clean install
进行打包,打包后就会有一个target的目录生成了打包的文件:
然后我们回到shop-gateway这个目录里面:
可以看到当前的目录下有Dockerfile文件,然后我们使用如下的命令打包这个镜像:
docker build -t a85791d9bf0b9ade/shop-gateway:1.0 .
执行后等待她打包成功:
接着我们把这个镜像上传到dockerhub上去:
docker push a85791d9bf0b9ade/shop-gateway:1.0
可以看到上传成功了。
2)打包并上传shop-user镜像
这里我们还是一样,在shop-user项目下创建一个Dockerfile文件
然后我们把以下的内容复制进去:
FROM openjdk:8-jdk-alpine ADD target/shop-user-1.0.jar /app.jar EXPOSE 8071 ENTRYPOINT ["java","-jar","app.jar"] ENV TZ Asia/Shanghai
然后我们把项目上传到git,在服务器上使用git拉下来,执行
mvn clean install
就可以看到target目录下生成了对应的jar包:
然后我们回到shop-user这个目录,可以看到下面有一个Dockerfile文件:
这里我们继续打包镜像
docker build -t a85791d9bf0b9ade/show-user:1.0 .
然后等待打包成功即可:
再把这个镜像上传到dockerhub上
docker push a85791d9bf0b9ade/show-user:1.0
3)打包并上传shop-product镜像
接着我们来最后一个shop-product,同样的再shop-product项目下创建一个Dockerfile:
然后把如下的代码复制进去:
FROM openjdk:8-jdk-alpine ADD target/shop-product-1.0.jar /app.jar EXPOSE 8081 ENTRYPOINT ["java","-jar","app.jar"] ENV TZ Asia/Shanghai
然后再提交到git上,然后去服务器上把项目拉下来,执行
mvn clean install
就可以看到这个shop-product的包了
然后我们回到shop-product同级目录,这里有一个Dockerfile
然后我们进行打包镜像:
docker build -t a85791d9bf0b9ade/shop-product:1.0 .
然后我们把这个product镜像上传到dockerhub上去
docker push a85791d9bf0b9ade/shop-product:1.0
以上我们就完成了整个spring cloud项目的docker镜像打包和上传。
备注:
1、这里我们再每一个dockerfile里面有一个expose 后面加了个端口,
这个端口其实对应的主要是当前spring boot的端口,这个端口在spring boot的application.yml里面的server.port:
2、大家拿到代码的时候需要修改下每个项目的application.yml,把这里的nacos配置给修改成自己的:
3、这里我们没有在执行docker file的时候进行maven打包,是在外面打包的,主要是习惯,因为每次打完包需要核对下配置文件等等信息。
4、在上一篇文章提供的项目代码里面,maven打包配置不全导致打不了包,所以大家从本文末下载最新的代码即可。
最后附上本案例的源码,登陆后即可下载。
还没有评论,来说两句吧...