测试服务器自动化部署(二)

5/26/2020 linuxdocker

# 可视化自动部署

# 安装jkenis

  • 下载Jenkins的Docker镜像:
docker pull jenkins/jenkins:lts
1
  • 在Docker容器中运行Jenkins:
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts
1
2
3
4
  • 运行成功后访问该地址登录Jenkins,第一次登录需要输入管理员密码:http://192.168.3.8:8080/

  • 使用管理员密码进行登录,可以使用以下命令从容器启动日志中获取管理密码:

docker logs jenkins
1
  • 安装必要的插件进行安装

# 编写shell脚本

  • 拉取项目最新代码.打包构建新镜像
  • 停止并删除旧容易
  • 基于新镜像构建新容器并启动(docker-compose方式)

# sh脚本粒度思考

主要从几个维度思考.注册中心/配置/网关更新的频率比较低

后台体统.前端系统相对独立,有时只是更新一个端而已,没必要重新部署两个端

所以这里分config.sh、admin.sh、portal.sh三个脚本

#!/usr/bin/env bash

app_name01='namo-registry'
app_name02='namo-config'
app_name03='namo-gateway'
cd /mydata/jenkins_home/workspace/namo-config/namo-registry/
echo '----begin mvn package----'
mvn clean package
echo '----stop container----'
docker stop ${app_name01}
echo '----rm container----'
docker rm ${app_name01}
cd /mydata/jenkins_home/workspace/namo-config/namo-config/
echo '----begin mvn package----'
mvn clean package
echo '----stop container----'
docker stop ${app_name02}
echo '----rm container----'
docker rm ${app_name02}
cd /mydata/jenkins_home/workspace/namo-config/namo-gateway/
echo '----begin mvn package----'
mvn clean package
echo '----stop container----'
docker stop ${app_name03}
echo '----rm container----'
docker rm ${app_name03}
echo '----rm none images----'
docker rmi `docker images | grep none | awk '{print $3}'`
echo '----start container----'
docker-compose -f /root/docker-compose-config.yml up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash

app_name='namo-admin'
cd /mydata/jenkins_home/workspace/namo-admin/namo-admin/
echo '----begin mvn package----'
mvn clean package
echo '----stop container----'
docker stop ${app_name}
echo '----rm container----'
docker rm ${app_name}
echo '----rm none images----'
docker rmi `docker images | grep none | awk '{print $3}'`
echo '----start container----'
docker-compose -f /root/docker-compose-app.yml up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env bash

app_name='namo-portal'
cd /mydata/jenkins_home/workspace/namo-config/namo-portal/
echo '----begin mvn package----'
mvn clean package
echo '----stop container----'
docker stop ${app_name}
echo '----rm container----'
docker rm ${app_name}
echo '----rm none images----'
docker rmi `docker images | grep none | awk '{print $3}'`
echo '----start container----'
docker-compose -f /root/docker-compose-app.yml up -d

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

为三个shell文件设置可执行权限

chmod +x /root/jenkins_sh/config.sh
chmod +x /root/jenkins_sh/admin.sh
chmod +x /root/jenkins_sh/portal.sh
1
2
3

# jenkins设置远程登录

系统管理》系统配置》SSH remote hosts

如果没有就去插件管理中下载SSH Plugin jenkins设置远程登录

# jenkins新建任务

# 添加git项目,添加密匙才有SSH的方式免密pull项目

添加git项目

# 远程宿主机服务器并执行打包脚本

远程宿主机

# 开机自启动

Centos8搭建 (opens new window)中,已设置docker开机自启动

在docker-compose的容器中添加属性restart: always,便会伴随docker的启动而运行容器😘

# 参考文献

mall在Linux环境下的部署(基于Docker Compose) (opens new window)

使用Jenkins一键打包部署SpringBoot应用,就是这么6! (opens new window)

微服务架构下的自动化部署,使用Jenkins来实现! (opens new window)

使用jenkins插件SSH plugin执行远程ssh (opens new window)

Linux配置开机自启动执行脚本的两种方法 (opens new window)

Last Updated: 7/7/2026, 1:56:39 PM