# 使用官方 Jenkins 镜像
FROM jenkins/jenkins:2.323
# 切换到 root 用户
USER root
# 安装基础工具和依赖
RUN apt-get update \
&& apt-get install -y curl wget gnupg rsync build-essential python3 zip unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 安装 Node.js 和 npm
RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \
&& echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x focal main' > /etc/apt/sources.list.d/nodesource.list \
&& echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x focal main' >> /etc/apt/sources.list.d/nodesource.list \
&& apt-get update \
&& apt-get install -y nodejs \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 配置 npm 使用淘宝镜像
RUN echo "\
registry=https://registry.npm.taobao.org/ \n\
proxy=null \n\
strict-ssl=false \n\
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ \
" > /root/.npmrc
# 安装 Yarn
RUN npm install -g yarn
# 安装 lerna
RUN npm install -g lerna
# 切换回 Jenkins 用户
USER jenkins
对应上图左侧的镜像company/xx-jenkins。
docker build -t company/xx-jenkins:2.323 .
# 推送到你的私库
# 略
配置 npm 使用淘宝镜像,可以让你安装yarn等会更快速。
docker ps -a 找到你原先的jenkins容器ID。
然后docker commit {container Id} {新的镜像名称}
比如 docker commit d10971774343 company/xx-jenkins-copy:2.323
官方jenkins是443MB,基于容器制作的镜像大小变成了629MB,这是因为多安装了Nodejs等许多软件。
制作后的镜像,就跟上面使用Dockerfile一样使用,或推送到私库,或直接在本机运行。
不过,这种制作自定义镜像,使得镜像变成了黑箱。
好了,关于制作自定义的jenkins镜像,我这里摘抄得比较详细,就不一一赘述了。
下文,我们将讲解rsync工具,具体是如何部署一个项目。