DevOps之jenkins与docker流水线

第一部分: 基于docker安装部署jenkins master节点

1) 安装部署docker-ce和docker-compose

yum -y install wget iproute tee  net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntplibaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate  yum-utils device-mapper-persistent-data  lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum clean all

yum makecache fast

#安装docker-ce

yum install -y docker-ce-19.03.7-3.el7

systemctl enable docker && systemctl start docker

#配置docker

cat > /etc/docker/daemon.json <<EOF
{
   "registry-mirrors": ["https://ziqva2l2.mirror.aliyuncs.com"],
  "graph": "/data/docker",
  "exec-opts":["native.cgroupdriver=systemd"],
   "log-driver":"json-file",
   "log-opts": {
    "max-size": "100m"
   },
   "storage-driver":"overlay2",
  "storage-opts": [
   "overlay2.override_kernel_check=true"
  ]
}
 EOF

 

systemctl restart docker

 

#安装docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

 

  

  

2)利用docker-compose部署jenkins master节点

mkdir /data/jenkins
cd /data/jenkins

cat >docker-compose.yaml <<-EOF
version: '3'
services:
  jenkins:
    restart: always
    image: jenkins/jenkins:2.235.5-lts-centos7 
    container_name: jenkins
    ports:
      - '8080:8080'
      - '50000:50000'
    user: root
    privileged: true
    restart: always
    volumes:
      - /data/jenkins/data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    environment:
      JAVA_OPTS: '-Xmx2048m -Xms2048m -Duser.timezone=Asia/Shanghai'
EOF

mkdir /data/jenkins/data   && chown -R 1000.1000 /data/jenkins/data

docker-compose up -d

#查看
[root@node01 jenkins]# docker-compose ps
Name Command State Ports 
---------------------------------------------------------------------------------------------------
jenkins /sbin/tini -- /usr/local/b ... Up 0.0.0.0:50000->50000/tcp, 0.0.0.0:8080->8080/tcp

 

 

#提升下载插件的速度

参考: https://github.com/jenkins-zh/jenkins-zh

 

cd /data/jenkins/data 

1)先把hudson.model.UpdateCenter.xml里面的内容清空

2)重新编写hudson.model.UpdateCenter.xml

<?xml version='1.1' encoding='UTF-8'?>
<sites>
   <site>
      <id>default</id>
      <url>https://updates.jenkins-zh.cn/update-center.json</url>
   </site>
</sites>

3)添加证书

cd war/WEB-INF/update-center-rootCAs/

rm -rf *

 

cat >mirror-adapter.crt <<-EOF

-----BEGIN CERTIFICATE-----
MIICcTCCAdoCCQD/jZ7AgrzJKTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJD
TjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYDVQQKDAV2aWhvbzEMMAoG
A1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRt
aW5AamVua2lucy16aC5jb20wHhcNMTkxMTA5MTA0MDA5WhcNMjIxMTA4MTA0MDA5
WjB9MQswCQYDVQQGEwJDTjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYD
VQQKDAV2aWhvbzEMMAoGA1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEG
CSqGSIb3DQEJARYUYWRtaW5AamVua2lucy16aC5jb20wgZ8wDQYJKoZIhvcNAQEB
BQADgY0AMIGJAoGBAN+6jN8rCIjVkQ0Q7ZbJLk4IdcHor2WdskOQMhlbR0gOyb4g
RX+CorjDRjDm6mj2OohqlrtRxLGYxBnXFeQGU7wWjQHyfKDghtP51G/672lXFtzB
KXukHByHjtzrDxAutKTdolyBCuIDDGJmRk+LavIBY3/Lxh6f0ZQSeCSJYiyxAgMB
AAEwDQYJKoZIhvcNAQELBQADgYEAD92l26PoJcbl9GojK2L3pyOQjeeDm/vV9e3R
EgwGmoIQzlubM0mjxpCz1J73nesoAcuplTEps/46L7yoMjptCA3TU9FZAHNQ8dbz
a0vm4CF9841/FIk8tsLtwCT6ivkAi0lXGwhX0FK7FaAyU0nNeo/EPvDwzTim4XDK
9j1WGpE=
-----END CERTIFICATE-----

 

EOF

 

#重启jenkins镜像

docker restart jenkins

  

  

  

原文地址:https://www.cnblogs.com/louis2008/p/devops-jenkins-docker.html