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

网友投稿 781 2023-01-25

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

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插件

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:跨端开发应用实例分析(前端跨端开发方案)
下一篇:混合app开发框架面试(混合开发面试题)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~