Jenkins部署项目到远程docker容器

  1. 安装Publish Over SSH插件 ,如果在线安装慢可以用离线安装
    在这里插入图片描述

  2. 配置SSH ,在系统管理-系统配置中配置远程服务器ssh,如图:
    配置服务器密码在这里插入图片描述
    点击新增,配置ssh连接地址,如需要代理访问,点高级。
    在这里插入图片描述测试服务器配置
    在这里插入图片描述

  3. 配置项目ssh ,在构建后操作选择 Send build artifacts over SSH
    在这里插入图片描述
    配置远程服务器及需要上传的文件
    在这里插入图片描述
    如这里上传到服务器后的文件目录为 /root/source/hzdsn-hyt-0.0.1-SNAPSHOT.jar和 /root/source/classes/Dockerfile

  4. 编写shell脚本 ,该脚本是运行在远程服务器上的

#!/bin/bash
echo "上传远程服务器成功"
#定义项目名和端口,我这里项目名即为容器名和镜像名,可按需定制
PROJECTNAME="hzdsn-hyt"
#该端口为Docker宿主机端口
PORT=8131
pwd
ls -l
#切换到/root/source目录,此目录结构为
#--hzdsn-hyt-0.0.1-SNAPSHOT.jar
#--classes/Dockerfile
#因此需要复制Dockerfile到source目录下
cd /root/source
ls -l
#重命名jar文件(强迫症选项)
cp "$PROJECTNAME"-0.0.1-SNAPSHOT.jar app.jar
echo "重命名文件app.jar"
#复制Dockerfile到source目录下
cp ./classes/Dockerfile ./Dockerfile
echo "复制Dockerfile成功"
ls -l
#构建镜像
echo "开始构建镜像文件"
docker build -t $PROJECTNAME . 
echo "构筑镜像结束"
{
    
     # try
#删除已有容器
  docker rm  -f  $PROJECTNAME
} || {
    
     # catch
  echo "容器不存在"
}
#创建并运行容器
docker run --name "$PROJECTNAME" --restart=always -d -p ${
    
    PORT}:8080 $PROJECTNAME
echo "创建容器成功"
  1. 验证项目配置 ,点击立即构建,控制台输出如下:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wyanyi/article/details/117079722