Jenkins目录Git备份的.gitignore配置及Docker预安装Node方案
嘿,我来帮你搞定这两个问题——Jenkins目录的Git忽略配置,还有怎么让Docker预先装好Node不用每次构建都下载。
Jenkins目录的.gitignore配置
首先,你的候选忽略项大部分都是对的,我帮你梳理下每个忽略项的原因,再给出最终的推荐配置:
tools/:这是Jenkins自动下载的工具(比如你遇到的Node),属于可重现的依赖,完全不需要存到Git里,后续可以通过镜像预安装或者重新下载workspace/:构建工作区会生成大量临时文件、构建产物,每次构建都会变化,没必要备份jobs/*/builds/:每个Job的构建历史是动态生成的,包含日志、产物等,不属于需要版本控制的核心配置logs/:实时生成的日志文件,没有长期备份的价值updates/:Jenkins插件更新的缓存目录,可随时重新生成.cache/、.standard-cache/:各类临时缓存文件,忽略即可.nvm/、.npm/:Node相关的本地缓存,不需要同步到Git.groovy/、.java/、.nano:这些是本地编辑器或环境的配置文件,属于个人设置,不需要共享workflow-libs/:如果这个目录里是你自定义的流水线库,那要保留;如果是Jenkins默认生成的空目录,就可以忽略plugins/:这里要注意——如果希望通过插件清单(比如plugins.txt)来重新安装插件,就忽略plugins/目录;如果想直接备份已安装的插件包,就去掉这个忽略项
最终推荐的.gitignore内容:
# Jenkins自动下载的工具目录(如Node、Maven等) tools/ # 构建工作区,临时文件集中地 workspace/ # Job的构建历史(动态生成,无需备份) jobs/*/builds/ # 日志文件 logs/ # 插件更新缓存 updates/ # 各类临时缓存目录 .cache/ .standard-cache/ # Node相关缓存 .nvm/ .npm/ # 本地编辑器/环境配置文件 .groovy/ .java/ .nano # 自定义流水线库:如果有自定义内容请注释掉这行 workflow-libs/ # 插件目录:通过插件清单安装则忽略,需备份插件包则删除此行 plugins/
让Docker预先安装Node,避免首次构建下载
有两种靠谱的方法,你可以根据自己的需求选:
方法一:自定义Jenkins镜像(推荐)
修改你的docker-compose配置里的build指向一个自定义Dockerfile,在构建镜像时就把Node装进去:
- 在
./jenkins目录下创建Dockerfile:
FROM jenkins/jenkins:lts # 切换到root用户安装依赖 USER root # 安装和你之前版本一致的Node.js v9.11.1 RUN curl -fsSL https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.gz | tar -xz -C /opt/ \ && ln -s /opt/node-v9.11.1-linux-x64/bin/node /usr/local/bin/node \ && ln -s /opt/node-v9.11.1-linux-x64/bin/npm /usr/local/bin/npm # 切回jenkins用户,避免权限问题 USER jenkins # 配置Jenkins识别这个预安装的Node(名称和你之前的工具名称一致) RUN echo "NodeJSInstallation(name='static_node_9.11.1', home='/opt/node-v9.11.1-linux-x64')" >> /var/jenkins_home/org.jenkinsci.plugins.nodejs.tools.NodeJSInstallation.xml
- 重新构建并启动容器:
docker-compose build docker-compose up -d
这样启动后,Jenkins就能直接用预安装的Node,不用再下载了。
方法二:本地提前下载Node包并挂载
如果不想自定义镜像,可以预先把Node包下载到本地的Jenkins工具目录,再通过docker-compose挂载:
- 创建对应的工具目录并下载Node:
mkdir -p ./jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/static_node_9.11.1 curl -fsSL https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.gz | tar -xz -C ./jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/static_node_9.11.1 --strip-components=1
- 修复目录权限(Jenkins容器用的是UID为1000的jenkins用户):
chown -R 1000:1000 ./jenkins/tools
- 启动docker-compose即可,Jenkins会发现工具已经存在,不会再下载。
内容的提问来源于stack exchange,提问作者ThomasReggi
相关产品推荐
相关产品推荐

