35.1 Docker 环境持续部署
35.1.1 关于全 Docker
环境部署
利用拥有 .NET
环境的 Jenkins
,进行持续化部署
35.1.2 安装 Docker
版 Jenkins
正常在 Docker
中拉取的 Jenkins:lts
是无法执行 dotnet
命令的(就算你宿主机有 dotnet
环境、docker
中也有 dotnet
环境也不可以),
所以我们只能构建一个包含 dotnet
的镜像
35.1.2.1 使用 Dockerfile 制作镜像
使用 Dockerfile
创建包含 dotnet
的 Jenkins
镜像
- 👉 编写
Dockerfile
# 封装Jenkins镜像(带有dotnet环境的) sdk=5.1
FROM jenkins/jenkins:lts
USER root
WORKDIR /dotnet
RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*
RUN wget -O dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/820db713-c9a5-466e-b72a-16f2f5ed00e2/628aa2a75f6aa270e77f4a83b3742fb8/dotnet-sdk-5.0.100-linux-x64.tar.gz
RUN tar zxf dotnet.tar.gz -C ./
RUN rm -rf dotnet.tar.gz
ENV PATH="${PATH}:/dotnet:/var/jenkins_home/.dotnet/tools"
ENV DOTNET_ROOT="/dotnet"
RUN apt update -y
RUN apt install icu-devtools vim zip unzip -y
RUN usermod -a -G root jenkins
USER jenkins
- 👉 命令解释
- 1. 这个Docker镜像基于jenkins
- 2. 设置当前用户为root,因为后面安装需要使用root
- 3. 设置当前工作目录为dotnet
- 4. 下载dotnet SDK包,保存为dotnet.tar.gz。这里要注意下载正确版本的SDK,可前往微软官方网站获取下载链接:https://dotnet.microsoft.com/download
- 5. 解压dotnet SDK到当前目录,即/dotnet目录
- 6. 删除dotnet SDK包
- 7. 把dotnet目录和dotnet tools目录添加到环境变量PATH,这样就可以使用dotnet命令了
- 8. 设置DOTNET_ROOT变量
- 9. 更新源
- 10. 安装一些必需的,常用的工具包,其中icu-devtools是运行dotnet需要的
- 11. 修改jenkins用户到root附加组
- 12. 设置当前用户为jenkins
- 👉 构建
Docker
镜像name=jenkins:dotnet
cd
到根目录下(必须含 Dockerfile
) 只需构建命令:
docker build -t jenkins:dotnet .
特别注意
结尾 .
不能省略