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 名  即可
posted @ 2025-02-18 14:02  高宏顺  阅读(49)  评论(0)    收藏  举报