Docker搭建SpringBoot运行环境及CodeArts自动化

举报
星汉网络 发表于 2023/02/01 15:29:07 2023/02/01
【摘要】 基于目前最新版的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.HOST=192.168.0.143 \
-e PROJECT.CLIENT.HOST=192.168.0.125 \
-e PROJECT.OUTPUT-PORT=8171 \
-p 8171:80 \
-v /alidata/docker/jdk17/project-name/webapp/:/home/webapp/ -v /alidata/docker/jdk17/project-name/log/:/home/log/ \
--name project-name boot3/jdk17

HOST : 对应 网关服务器的内网地址

CLIENT: 应用服务器的内网地址

IP : 映射的端口号

project-name :根据需要进行更改。

如果是在同一台服务器上部署,则可以使用如下命令:

docker run -d \
-e EUREKA.CLIENT.ENABLED=true \
-e PROJECT.EUREKA.HOST=eureka-name \
-e PROJECT.CLIENT.HOST=project-name \
-e PROJECT.OUTPUT-PORT=80 \
-p 8072:80 \
-v /alidata/docker/jdk17/project-name/webapp/:/home/webapp/ -v /alidata/docker/jdk17/project-name/log/:/home/log/ \
--net net-name --name project-name boot3/jdk17

其中,eureka 和 net ,根据自己的实际需要,进行更改。

其中,对于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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。