• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动

springboot 搞代码 4年前 (2022-01-05) 22次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了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

  <!-- docker主机ip(这里填写自己docker所在地址) -->192.168.10.10<!-- harbor仓库地址(可选,构建镜像后自动上传到该仓库) -->${docker.host}<!-- docker远程地址, 如果是https协议则将http换成https即可 -->http://${docker.host}:2375<!--项目名,需要和Harbor中的项目名称保持一致 -->library<!-- 默认端口 -->8080 ...    <!--构建镜像--> com.spotifydocker-maven-plugin1.2.0 <!--Maven 的配置文件 setting.xml 中增加相关 server 配置,主要配置 Docker registry用户认-->docker-harbor${docker.remote}<!-- 镜像名格式:   仓库地址/仓库项目名/当前项目名   (按需修改) -->${docker.repostory}/${docker.registry.name}/${project.artifactId}openjdk:8u282-jdk作者 8080Asia/Shanghai<!-- 这里的ln和后面的操作是保证时间同步 -->mkdir -p /epark/logs && ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone/epark<!--suppress UnresolvedMavenProperty -->["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar","--server.port=${PORT}"] <!-- 这里是仓库地址,不需要可以删除 -->http://${docker.repostory}<!-- 这里指定是否构建成功后自动推送到仓库,不需要可以删除 -->true  ${project.build.dire<strong style="color:transparent">来源gaodai#ma#com搞@@代~&码*网</strong>ctory}${project.build.finalName}.jar<!-- docker-compose的maven插件 --> com.dkanejs.maven.pluginsdocker-compose-maven-plugin2.5.1 <!-- 路径为: 当前项目的上一级(也就是父项目),所以不支持二级以上的子项目 -->${project.basedir}/../docker-compose.yml1.22${docker.remote} <!-- 默认端口 -->${port}${docker.repostory}${project.build.finalName}<!-- 自定义项目名,支持单镜像启动多容器的关键 -->${project.build.finalName}-${port}<!-- 这里是证书配置,如果开启了docker证书,则需要配置 --><!--                            1--><!--                            D:\docker-ca-->

注意,${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

 <!-- 这里配置的端口会传入父项目,最终传入docker-compose.yml和Dockerfile文件 --><!-- 如果需要单个镜像启动多个容器,改这里的端口再启动就可以了 --> 8082 ...   <!-- docker插件 --> com.spotifydocker-maven-plugin<!-- docker-compose的maven插件,由于docker插件不支持运行,所以单独安装了 --> com.dkanejs.maven.pluginsdocker-compose-maven-plugin

如果一切顺利maven中会出现docker和docker-compse插件
先执行docker:build构建,再执行docker-compose:up启动

成功后可以查看docker容器启动情况了,我这里使用的是docker插件

以上就是SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址