通过官方jenkins镜像安装
- jenkins官方下载地址:https://jenkins.io/zh/download/
- docker pull jenkins/jenkins安装最新版本
docker pull jenkins/jenkins:lts安装lts稳定版 - 编写docker-compose.yml
#author menard
version: '2'
services:
####################jenkins################
jenkins:
image: "jenkins/jenkins:lts"
hostname: jenkins
#container_name定义容器名
container_name: jenkins
#随容器服务启动而启动
restart: always
#端口映射
ports:
- '8080:8080'
- '50000:50000'
extra_hosts:
- "jenkins:127.0.0.1"
#volumes定义挂载目录
volumes:
- /workspace/jenkins_home/:/var/jenkins_home/
- /workspace/script/:/workspace/script/
#时区设置
environment:
- TZ=Asia/Shanghai
# network_mode: host
通过dockerfile文件构建自定义jenkins容器
- 编写Dockerfile文件;因为我是原来用的jenkins的家目录是/var/jenkins_home/ jenkins,所以做镜像时要改成这个,就不用修改原有的配置,而java环境是通过通过jenkins的插件目录挂载进去的,如果第一次使用的话需要再安装java。/etc/init.d/jenkins和/etc/sysconfig/jenkins我修改了Jenkins的端口和默认的目录,如果不需要修改可以省略这个。
FROM centos:7
USER root
ADD jenkins-2.150.3-1.1.noarch.rpm /tmp
#ADD jdk-8u201-linux-x64.tar.gz /usr/local/
RUN rpm -ivh /tmp/jenkins-2.150.3-1.1.noarch.rpm --force --nodeps && rm -rf /tmp/jenkins-2.150.3-1.1.noarch.rpm \
&& yum install -y git \
&& yum install -y initscripts \
&& ln -s /var/jenkins_home/tools/jdk1.8.0_181/bin/java /usr/bin/java \
&& touch /var/log/jenkins/jenkins.log && chown 999:998 /var/log/jenkins/jenkins.log \
&& usermod -d /var/jenkins_home/ jenkins \
&& ln -s /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS/bin/node /usr/bin/node
COPY jenkins /etc/init.d/jenkins
COPY etc/jenkins /etc/sysconfig/jenkins
COPY docker-entrypoint.sh /usr/sbin/docker-entrypoint.sh
ENV PATH=$PATH:/var/jenkins_home/tools/jdk1.8.0_181/bin:/var/jenkins_home/tools/apache-maven-3.6.0/bin:/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS/bin
ENV JENKINS_HOME=/var/jenkins_home JAVA_HOME=/var/jenkins_home/tools/jdk1.8.0_181 CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
WORKDIR /var/jenkins_home/
CMD docker-entrypoint.sh
- 编写docker-entrypoint.sh文件并chmod +x docker-entrypoint.sh增加可执行权限。
#!/bin/bash
/etc/init.d/jenkins start
tail -f /var/log/jenkins/jenkins.log
- 构建成镜像
docker build -t menard/jenkins:lts .