这篇文章主要介绍了SpringBoot+Docker+IDEA 实现一键构建+推送、运行、同镜像多容器启动的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
场景:
由于公司项目需要,需要使用部署微服务项目,而之前都是使用tomcat部署,操作十分繁琐。最近正好在学习Docker,利用Docker容器做部署尝试
需求:
- 使用Docker部署服务
- 支持idea插件,一键操作构建、推送镜像、运行
- 单个镜像需根据不同端口部署多个容器
- 日志持久化
必要软件
服务器(我的版本为CentOS:7.9)
- Docker(需要开通远程访问,正式环境请使用证书加密,我这里测试用无加密)
- Harbor 镜像仓库(可选)
开发端
- Docker Desktop (支持本地运行docker-compose,如果不用docker-compose插件可以不用)下载地址
- 桌面版docker必要插件下载地址
- docker-comopse 下载地址
- IDEA(废话)
- docker插件 (可选,在idea插件市场下载,名字就叫Docker)
在idea中配置docker
目录结构:
父项目配置(关键配置):
pom.xml
... 192.168.10.10 ${docker.host} http://${docker.host}:2375 library 8080 com.spotify docker-maven-plugin 1.2.0 docker-harbor ${docker.remote} ${docker.repostory}/${docker.registry.name}/${project.artifactId} openjdk:8u282-jdk 作者 8080 Asia/Shanghai mkdir -p /epark/logs && ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone /epark ["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar","--server.port=${PORT}"] http://${docker.repostory} true ${project.build.directory} ${project.build.finalName}.jar com.dkanejs.maven.plugins docker-compose-maven-plugin 2.5.1 ${project.basedir}/../docker-compose.yml 1.22 ${docker.remote} ${port} ${docker.repostory} ${project.build.finalName} ${project.build.finalName}-${port}
注意,${project.artifactId}引用的项目构件ID只能是小写
docker-compose.yml
version: '3.4' services: eparking: # 镜像 image: ${host}/library/${name}:latest # 容器名 container_name: ${name}-${port} # 开机自启(自选) #restart: always # 环境配置 environment: # 端口 - PORT=${port} # 端口映射 ports: - "${port}:${port}" # 卷映射,这里日志根据自己项目输出位置调整 volumes: - "/log/${name}/${port}:/logs/"
配置了仓库的话需要配置Maven的settings.xml的账号密码
docker-harbor 仓库用户名 仓库密码
子项目配置(关键配置)
pom.xml
... 8082 com.spotify docker-maven-plugin com.dkanejs.maven.plugins docker-compose-maven-plugin
如果一切顺利maven中会出现docker和docker-compse插件
先执行docker:build构建,再执行docker-compose:up启动
成功后可以查看docker容器启动情况了,我这里使用的是docker插件
好了,这功能花费了我很长时间,最终实现了这些功能。可能还有些小细节没展示出来,可以尽管提问
到此这篇关于SpringBoot+Docker+IDEA 实现一键构建+推送、运行、同镜像多容器启动的文章就介绍到这了,更多相关springboot docker idea多容器启动内容请搜索html中文网以前的文章或继续浏览下面的相关文章希望大家以后多多支持html中文网!
以上就是SpringBoot+Docker+IDEA 实现一键构建+推送、运行、同镜像多容器启动(推荐)的详细内容,更多请关注0133技术站其它相关文章!