Dockerfile:Jenkins+jdk17+dotnet8
近日,重新构建了一套基于Jenkind+jdk17+dotnet8的镜像构建脚本,为防止后续使用无构建脚本,特做一记录,
1.构建脚本
# 使用官方 Jenkins LTS 镜像 FROM jenkins/jenkins:2.508-jdk17 # 切换到 root 用户操作 USER root # 删除旧软件源配置 RUN rm -rf /etc/apt/sources.list /etc/apt/sources.list.d/* # 写入阿里云 Debian 12 镜像源 RUN echo "deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware" > /etc/apt/sources.list && \ echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware" >> /etc/apt/sources.list && \ echo "deb https://mirrors.aliyun.com/debian-security/ bookworm-security main non-free non-free-firmware" >> /etc/apt/sources.list # 安装基础工具和依赖 RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ curl \ git \ nano \ wget \ gnupg \ ca-certificates \ openssh-client # 新增 SSH 客户端 # 添加 Microsoft 包签名密钥和仓库 RUN wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \ dpkg -i packages-microsoft-prod.deb && \ rm packages-microsoft-prod.deb # 更新并安装 .NET 8 SDK RUN apt-get update && \ apt-get install -y --no-install-recommends \ dotnet-sdk-8.0=8.0.402-1 # 验证 .NET 版本 RUN dotnet --version # 创建 SSH 密钥目录并生成密钥(无密码) RUN mkdir -p /var/jenkins_home/.ssh && \ ssh-keygen -t rsa -b 4096 -f /var/jenkins_home/.ssh/id_rsa -N "" && \ chown -R jenkins:jenkins /var/jenkins_home/.ssh && \ chmod 700 /var/jenkins_home/.ssh && \ chmod 600 /var/jenkins_home/.ssh/id_rsa && \ chmod 644 /var/jenkins_home/.ssh/id_rsa.pub # 可选:预添加 GitHub 到 known_hosts RUN ssh-keyscan -t rsa github.com >> /var/jenkins_home/.ssh/known_hosts && \ chown jenkins:jenkins /var/jenkins_home/.ssh/known_hosts && \ chmod 644 /var/jenkins_home/.ssh/known_hosts # 清理 APT 缓存 RUN apt-get clean && \ rm -rf /var/lib/apt/lists/* \ rm -rf /usr/share/dotnet/sdk/NuGetFallbackFolder # 切换回 Jenkins 用户 USER jenkins # 设置环境变量 ENV DOTNET_ROOT=/usr/share/dotnet ENV PATH="$PATH:/usr/share/dotnet" # 保留 Jenkins 原始入口点 ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
2.镜像构建
docker build -t jenkins-custom:2.508-jdk17 .
3.容器构建
docker run -d \
--restart=always \
-uroot -uroot \
--name jenkins \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /home/bizuser/soft/docker_jenkins:/var/jenkins_home \
-v /bin/sh:/bin/sh \
-p 12000:8080 \
-p 12001:50000 \
-v /etc/localtime:/etc/localtime \
jenkins-custom:2.508-jdk17 \
4.安装验证
docker ps
docker exec -it jenkins /bin/bash
容器验证
dotnet验证
jdk验证
5.启动配置
http://localhost:12000/login?from=%2F
提取用户初始密码
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
点击【安装推荐的插件】
至此,镜像构建-安装-运行-验证-配置过程基本完成。
6.原版镜像附件:
镜像拉取
docker pull jenkins/jenkins:2.508-jdk17
容器安装
docker run -d \
--restart=always \
-uroot -uroot \
--name jenkins \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /home/bizuser/soft/docker_jenkins:/var/jenkins_home \
-v /bin/sh:/bin/sh \
-p 12000:8080 \
-p 12001:50000 \
-v /etc/localtime:/etc/localtime \
jenkins/jenkins:2.508-jdk17 \