0%

jenkins自动构建部署前端镜像

目标,实现 OJ 前端代码自动打包构建镜像到腾讯云,远程 ssh 登录学校主机自动部署镜像

尝试了一下在 docker 中安装 jenkins,遇到了无法解决的坑,还是在 windows 下安装吧。

jenkins 插件下载加速

修改 jenkins_home 里 updates 中 default.json 文件,之后访问 /restart 路径 重启 jenkins 后生效

1
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

无法执行 shell 脚本

Manage Jenkins>Configuration System
将 shell 设置为 git 安装目录 下 bin/sh.exe 的路径

node 环境

下载 jenkinsNode 插件后,直接设置为本机的 node 安装目录
nodejs配置

配置 publish over ssh

首先安装 Publish Over SSH 插件

报错 invalid private key
这是生成的 key 格式不同,插件不认新的 openssh 的格式,需要将私钥转回老格式

1
-----BEGIN RSA PRIVATE KEY-----

老格式文件的开头是这样的

构建配置

选择自由软件,配置 github 仓库地址,选择构建环境为设置的 nodejs 环境

构建脚本

1
2
3
4
5
cd FE && yarn && yarn build
cd FE && docker build -t ccr.ccs.tencentyun.com/jiezi19971225/ahpuoj-fe .
docker login --username=xxxxxx --password=xxxxxx ccr.ccs.tencentyun.com && docker tag ccr.ccs.tencentyun.com/jiezi19971225/ahpuoj-fe ccr.ccs.tencentyun.com/jiezi19971225/ahpuoj-fe:$BUILD_NUMBER && docker push ccr.ccs.tencentyun.com/jiezi19971225/ahpuoj-fe
docker rmi ccr.ccs.tencentyun.com/jiezi19971225/ahpuoj-fe:$BUILD_NUMBER
docker rmi ccr.ccs.tencentyun.com/jiezi19971225/ahpuoj-fe

构建后操作

1
2
3
4
5
cd /home/ahpuoj/ahpuojv2docker/compose
docker-compose pull fe
docker-compose up -d fe
// 这行命令用来删除老的镜像
docker image prune -f --filter "dangling=true"

it works

itWorks