Docker 部署jenkins
拉取镜像
docker pull jenkins/jenkins
创建挂载目录
mkdir -p /data/jenkins/{jenkins_home,docker.sock}
创建启动Jenkins容器
docker run -d \
--name jenkins \
--user $(id -u):$(id -g) \
-p 9080:8080 \
-p 50000:50000 \
-v /data/jenkins/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
--restart=always \
jenkins/jenkins
详细解释:
# 使用 Docker 运行一个新的容器
docker run -d \
# 为容器指定一个名字
--name jenkins \
# 以当前用户身份运行容器内的进程,$(id -u) 获取当前用户的用户ID,$(id -g) 获取当前用户的组ID
--user $(id -u):$(id -g) \
# 将宿主机的端口 9010 映射到容器的端口 8080,用于访问 Jenkins 的 Web 界面
-p 9080:8080 \
# 将宿主机的端口 9011 映射到容器的端口 50000,用于 Jenkins 的 JNLP 代理连接
-p 50000:50000 \
# 将宿主机上的 /data/jenkins/jenkins_home 目录挂载到容器的 /var/jenkins_home 目录,用于持久化 Jenkins 数据
-v /data/jenkins/jenkins_home:/var/jenkins_home \
# 将宿主机上的 Docker 套接字文件挂载到容器中,使得容器内的 Jenkins 可以使用宿主机的 Docker 守护进程
-v /var/run/docker.sock:/var/run/docker.sock \
# 将宿主机上的 Docker 命令挂载到容器中,使得容器内的 Jenkins 可以执行 Docker 命令
-v $(which docker):/usr/bin/docker \
# 指定要运行的镜像,这里是 Jenkins 官方提供的 Jenkins 镜像
jenkins/jenkins
查看jenkins 解锁密码
docker logs -f jenkins
如下所示
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
6f1c8e1131974079ace00e89507c6a16
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
设置密码
admin admin123
Jenkins dotnet命令无法执行
docker exec -it jenkins bash
#dotnet
apt-get install wget
# 此处版本需要替换
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
apt-get update
apt-get install dotnet-sdk-6.0
添加自定义源
docker exec -it jenkins bash
cd ~/.nuget/NuGet
# 添加第一个源#
sed -i '/<\/packageSources>/i \ <add key="xxx" value="http://nuget.xxx.co/nuget" />' NuGet.Config
# 添加第二个源
sed -i '/<\/packageSources>/i \ <add key="xxx1" value="http://nuget..xxx.co/nuget" />' NuGet.Config
将现有容器打包成镜像
# docker commit -m "提交信息" -a "作者" <容器ID或名称> mynewimage:latest
docker commit -m '配置后的jenkins' -a 'TE' jenkins myjenkins:1.0
配置NodeJs
系统管理 => 插件管理 => 安装NodeJS
系统管理 => 全局工具配置 => NodeJS安装 => 勾选自动安装 选择需要的 NodeJS 版本
配置流水线 => 环境 => 为PATH提供Node 和 npm bin/文件夹 (Provide Node & npm bin/ folder to PATH)=> 选择你在全局工具配置的nodejs 名 即可

浙公网安备 33010602011771号