Docker搭建SpringBoot运行环境及CodeArts自动化
【摘要】 基于目前最新版的SpringBoot框架,需要JDK17的运行环境。通过下面方法,创建相关镜像及容器。一、执行DockerfileFROM openjdk:17.0.2-oracleWORKDIR /home/webappCMD ["java","-Duser.timezone=GMT+08","-Xms512m","-Xmx512m", "-jar", "application.jar"]...
基于目前最新版的SpringBoot框架,需要JDK17的运行环境。通过下面方法,创建相关镜像及容器。
一、执行Dockerfile
FROM openjdk:17.0.2-oracle
WORKDIR /home/webapp
CMD ["java","-Duser.timezone=GMT+08","-Xms512m","-Xmx512m", "-jar", "application.jar"]
执行的命令:
1、进入到Dockerfile的目录
2、执行运行命令
docker build -t boot3/jdk17 ./
其中,boot3/jdk17 是镜像的名称。
执行后,会生成两个image。如下图:
二、根据镜像,创建容器。
1、执行创建容器的命令,如下:
docker run -d -p 8171:80 -v /alidata/docker/jdk17/project-name-port/webapp/:/home/webapp/ -v /alidata/docker/jdk17/project-name-port/log/:/home/log/ --restart=always --name project-name-port boot3/jdk17
其中: 8081端口号,可以根据需要进行调整。
--restart=always 用于开机自启动
映射的目录结构,及boot3的名称,可以根据具体实际情况调整。
另外,如果是基于微服务架构,创建容器则需要挂载环境变量,(内部应用)如下:
docker run -d -e EUREKA.CLIENT.ENABLED=true -e PROJECT.EUREKA=192.168.0.170 -e PROJECT.LOCAL=192.168.0.167 -e PROJECT.OUTPUT-PORT=8073 -p 8073:80 -v /alidata/docker/jdk17/test-mxboss-trial/webapp/:/home/webapp/ -v /alidata/docker/jdk17/test-mxboss-trial/log/:/home/log/ --name test-mxboss-trial_jdk17 boot3/jdk17
其中,走内网IP,eureka指向网关服务器,local是本机。
其中,对于lobby的示例命令如下:
docker run -d -e EUREKA.CLIENT.ENABLED=true -e PROJECT.EUREKA=mxboss-eureka -e PROJECT.LOCAL=test-mxboss-lobby_jdk17 -e PROJECT.OUTPUT-PORT=8070 -p 8070:80 -v /alidata/docker/jdk17/test-mxboss-lobby/webapp/:/home/webapp/ -v /alidata/docker/jdk17/test-mxboss-lobby/log/:/home/log/ --net mxboss --name test-mxboss-lobby_jdk17 boot3/jdk17
2、正常的话,就可以得到运行的容器了。
三、自动化部署(基于华为云CodeArts)
然后进行相关命令的处理,这里直接使用shell命令,完成配置文件的替换,及应用的重启。
#!/bin/bash
#项目名称
pjt_name="boot3"
#Docker容器的ID
container_id="09f2d4091324"
#自定义配置文件路径,不同项目有所区别
final_config_path="/alidata/devcloud/webapp-config/$pjt_name"
#容器内的应用地址,同宿主机器的镜像
container_path="/alidata/docker/jdk17/$pjt_name/webapp"
echo "停止docker运行的实例"
docker stop $container_id
echo "替换项目配置文件"
sudo rm -rf /alidata/docker/jdk17/$pjt_name/webapp/config
sudo cp -R $final_config_path/config $container_path/
echo "启动docker运行的实例"
docker start $container_id
其中的相关参数,根据项目的实际情况,进行修正。
保存后,可以正常部署的话,恭喜您,成功的完成了自动化部署。
四、创建流水线。
通过CodeArts平台,创建一个构建和部署的流水线,这样,自动化的步骤就完成了。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)