jenkins(基于Publish over SSH插件)+Dockerfile+linux自动化部署springboot应用

本文主要实现linux服务器上如何自动化部署springboot应用,linux操作系统为CentOS 8.3 64位,win10。实现jinkens在本地(win10)打包再发送到远程服务器上(CentOS)。

1. docker环境安装(CentOS+win10)

1)安装yum-utils

yum install -y yum-utils device-mapper-persistent-data lvm2 
  1. 为yum源添加docker仓库位置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装docker
yum install docker-ce
  1. 启动docker
systemctl start docker

2. portainer安装(CentOS+win10)

1)下载jenkins的portainer镜像

docker pull portainer/portainer

2)在docker容器中运行

docker run -d -p 9000:9000 \
--restart=always  \
-v /var/run/docker.sock:/var/run/docker.sock  \
--name portainer  portainer/portainer

3. jenkins安装(win10)

1)下载jenkins的docker镜像

docker pull jenkins/jenkins

2) 在docker容器中运行jenkins

docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins

4. jenkins配置

1)安装插件Publish over SSH
进入插件管理,找到SSH插件进行安装即可。
找到:系统管理->系统配置->Publish over SSH
在这里插入图片描述
Passphrase为远程服务器的密码。
在这里插入图片描述
Name为远程服务器名称,Hostname为服务器ip, Username为服务器登录的用户名。

5. 新建任务

构建一个自由风格的软件项目,进行任务配置:

  1. 源码管理:配置git

  2. 构建:
    增加构建步骤->调用顶层maven目标,添加应用启动模块maven配置:
    在这里插入图片描述

增加构建步骤->Send files or execute commands over SSH, 添加远程脚本命令配置:
在这里插入图片描述
Transfers配置如下:
在这里插入图片描述

6. 创建DockerFile

# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD api-1.0.1-SNAPSHOT.jar /api.jar
# 运行过程中创建一个api.jar文件
RUN bash -c 'touch /api.jar'
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/api.jar"]
# 指定维护者的名字
MAINTAINER songrenwei

7. 创建shell脚本命令

创建run.sh:

#!/usr/bin/env bash
# 定义应用组名
group_name='spring-boot-demo'
# 定义应用名称
app_name='api'
# 定义应用版本
app_version='1.0.1-SNAPSHOT'
# 定义应用环境
profile_active='prd'
# 打包后在jenkins的目录
source_path='/mydata/jenkins_home/workspace/api'
# Dockerfile执行jar包的地址
des_path='/mydata/deploy/application/api'

# 复制jar包
# cp ${source_path}/api/target/api-1.0.1-SNAPSHOT.jar ${des_path}/api-1.0.1-SNAPSHOT.jar
# echo '----copy jar----'
# 删除容器及镜像
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker rmi ${app_name}:${app_version}
echo '----rm image----'
# 打包编译docker镜像
docker build -t ${app_name}:${app_version} .
echo '----build image----'
docker run -p 8081:8081 --name ${app_name} \
--link mysql:db \
--link redis:redis \
--link mongo:mongo \
-e 'spring.profiles.active'=${profile_active} \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d ${app_name}:${app_version}
echo '----start container----'

8. 构建任务

在这里插入图片描述

点击任务,立即构建:
在这里插入图片描述

8. 构建结果

打开服务器portainer,查看springboot应用运行情况:
在这里插入图片描述
api应用已成功运行!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值