文件结构
-rw-rw-r-- 1 admin admin 643 9月 29 20:54 Dockerfile-rw-rw-r-- 1 admin admin 424 9月 29 20:54 jenkins-entrypoint.shdrwxrwxr-x 18 admin admin 4096 7月 18 19:39 jenkins-metadata
文件内容
Dockerfile
FROM jenkins/jenkins:2.197ENV TZ="Asia/Shanghai"USER rootRUN echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config \&& apt-get -y update \&& apt-get -y install vim openssh-client \&& usermod -u 500 jenkins && groupmod -g 500 jenkins# copy jobs/plugins/secretsCOPY --chown=jenkins:jenkins . /tmp/# override the entry point to use a custom scriptCOPY --chown=jenkins:jenkins jenkins-entrypoint.sh /usr/local/bin/jenkins-entrypoint.sh# make custom entry point script executableRUN chmod +x /usr/local/bin/jenkins-entrypoint.shUSER jenkinsENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/jenkins-entrypoint.sh"]
jenkins-entrypoint.sh
#!/bin/bash# we have to do this in an entrypoint becuase the jenkins image has defined $JENKINS_HOME as a volumeif [ ! -d /var/jenkins_home/nodes ]; thenecho "nodes directory not exist, we will use image data."cp -r /tmp/jenkins-metadata/. /var/jenkins_home/elsedir_size=`ls -A /var/jenkins_home/nodes |wc -w`if [ "$dir_size" != "0" ]; thenecho "nodes directory already has data, we will use volume data."elseecho 'nodes directory hava no data, we will use image data.'cp -r /tmp/jenkins-metadata/. /var/jenkins_home/fifi# call the original entry point/sbin/tini -- /usr/local/bin/jenkins.sh
jenkins-metadata
存放JENKINS_HOME数据
