使用docker 启动 jenkins
在wsl环境下执行,会发现 docker.sock 守护进程不在,需要手动配置,需要注意如下
- 启动jenkins 市区设置为 东八区
- 当时尝试过容器绑定宿主机器的node,但是无法使用?因为window下的node执行文件和linx不兼容,window下是PE格式,而jenkins容器是linux环境,所以在下面会介绍如何安装nodejs
sh
docker pull jenkins/jenkins:jdk17
docker run -d \
--name jenkins \
-p 8888:8080 \
-p 50000:50000 \
-e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
-v /home/jenkins_data:/var/jenkins_home \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-u 0 \
jenkins/jenkins:jdk17

创建自由流水线
最关键执行的sheel脚本, 删除容器、镜像、创建镜像、启动容器
sh
pwd
node -v && npm -v
npm install -g pnpm
npm config set registry http://172.10.20.204:4873
npm get registry
pnpm install
pnpm build
# 删除容器 -c 代表容器 -i代表 镜像
docker rm layout-website-back-c --force || true
# 删除镜像
docker rmi layout-website-back-i --force || true
docker build -f ./deploy/Dockerfile -t layout-website-back-i:qa .
docker run -d -p 0.0.0.0:9000:80 --name layout-website-back-c layout-website-back-i:qa
会发现node not found
安装nodejs插件,并全局设置添加插件
- 安装nodejs插件,并全局设置添加nodejs版本并命名
- 勾选 Provide Node & npm bin/ folder to PATH
- 构建流水线会发现一直卡在unpacking xx
解决上面第三个问题,手动压缩
因为网络问题,手动压缩nodejs包到工具里, 到var/jenkin_data/tool 里,
sh
wget https://npmmirror.com/mirrors/node/v24.0.0/node-v24.0.0-linux-x64.tar.gz -P /var/jenkins_home/tools/
角色管理 Manage and Assign Roles
还没做
以上就是我在前端小组里搭建jenkins遇到的坑!