随着容器化流行,k8s流行,解放生产力真的很重要,那么久看看集中在docker中部署微服务的方式吧
一、Idea是什么?Springboot是什么?Docker是什么?不多解释了,Idea 开发工具,Springboot是开发框架,Docker运行环境
二、使用步骤 1. 增加部署文件
01)整体的项目结构如图,我在根目录下的deploy 下创建了 Dockerfile 和build.sh 这个在后面的其他部署方式中会用到;
所说的部署文件,就是Docker的配置文件,这是一个非常强大的东西;具体的语法可以找相关的文档看看,这里我只做一个简单的部署样例;
具体内容:
FROM openjdk:8 VOLUME /tmp ADD *.jar app.jar EXPOSE 8099 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
2, 在项目于中的pom.xml文件中加入这个插件
com.spotify
docker-maven-plugin
build-image
package
build
${project.artifactId}
latest
${project.basedir}/deploy
http://127.0.0.1:2375
/
${project.build.directory}
${project.build.finalName}.jar
2.使用阶段
2.1 ,安装插件 Docker
配置插件:
找到services 选项卡:
最后利用我们在Maven 中配置的package 命令直接进行编译打包做镜像
日志的输出:
[INFO] Building image docker-k8s-user
Step 1/5 : FROM openjdk:8
---> 5bbce51c9625
Step 2/5 : VOLUME /tmp
---> Running in 51e4c77979bb
Removing intermediate container 51e4c77979bb
---> 0963e6fe1b61
Step 3/5 : ADD *.jar app.jar
---> 6d975dbbe77b
Step 4/5 : EXPOSE 8099
---> Running in 46b65c077f25
Removing intermediate container 46b65c077f25
---> 9706f14c9a48
Step 5/5 : ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
---> Running in c70aeb012abe
Removing intermediate container c70aeb012abe
---> df85a6cdedb7
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built df85a6cdedb7
Successfully tagged docker-k8s-user:latest
[INFO] Built docker-k8s-user
[INFO] Tagging docker-k8s-user with latest
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.649 s
[INFO] Finished at: 2021-12-16T10:54:53+08:00
生成好的镜像:
配置容器端口到外部服务的映射
在Containers中找到这个服务,启动
最后,访问下吧
http://127.0.0.1:10001/userinfo/sayHello
总结
这个部署方式只是众多方式中的一种,我下一次会用shell 脚本的方式,集成 maven打包,docker 构建镜像,启动 做到一个shell命令中这样也可以完成;写的菜不要喷



