jenkins+docker+docker-compose持续集成

安装jdk1.8

image.png
通过ftp 工具上传到  /usr/local/java 目录
cd /usr/local/java
tar -zxvf jdk-8u221-linux-x64.tar.gz

#配置环境变量
vi /etc/profile

## 将下面的粘贴到 /etc/profile 末尾:

JAVA_HOME=/usr/local/java/jdk1.8.0_221
JRE_HOME=/usr/local/java/jdk1.8.0_221/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH

#保存关闭后(:wq),执行以下命令,让设置立即生效
source /etc/profile

#输入以下命令,来确认这三个变量是否设成了我们想要的
echo $JAVA_HOME
echo $CLASSPATH
echo $PATH

安装maven

cd /home 
wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 #下载maven压缩包
tar -zxvf apache-maven-3.6.3-bin.tar.gz #解压
rm -rf apache-maven-3.6.3-bin.tar.gz #删除压缩包

配置环境变量

vi /etc/profile

把以下内容加到最后

export M2_HOME=/home/apache-maven-3.6.3

export PATH=$PATH:${M2_HOME}/bin

保存后使环境变量生效:

 source /etc/profile 

修改下载依赖的仓库地址

vi /home/apache-maven-3.6.3/conf/settings.xml

找到<mirrors></mirrors>标签对

添加后的效果为:

<mirrors> 
   <mirror> 
     <id>alimaven</id> 
     <name>aliyun maven</name> 
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
     <mirrorOf>central</mirrorOf> 
   </mirror>  
</mirrors>

安装docker

# 如果有旧版本的docker ,执行这一步,全新安装的跳过
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

# 安装所需的包
yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 替换源
yum -y install docker-ce # 安装docker-ce
systemctl start docker  #启动docker 
systemctl enable docker #开机启动docker
systemctl status docker #查看docker状态

配置镜像加速器
mkdir -p /etc/docker
vim  /etc/docker/daemon.json
# 在文件中加入
{
"registry-mirrors": ["https://br10hqrl.mirror.aliyuncs.com"]
}

:wq  #保存/etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker  #  重启生效

安装 docker-compose

sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.25.0-rc2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

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

#检查安装是否完成
docker-compose -v
# 和jenkins整合还需 弱链接一下
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

安装jenkins

下载 jenkins 的 rpm 格式的包,将该包上传到 Linux 服务器,不翻墙的话,下载很慢的。
这里推荐一个下载的地方CSDN :https://download.csdn.net/download/weixin_38142661/12198648

rpm -ivh jenkins-2.222-1.1.noarch.rpm          # 安装

rpm -ql jenkins-2.131-1.1.noarch                  # 查看文件安装的目录

修改默认端口号

vi /etc/sysconfig/jenkins/ 

找到 JENKINS_PORT 8080 # 修改 JENKINS_PORT 9090 随意,可换可不换

还需要更改 jdk的路径

which java # 查看java的安装路径
vi /etc/init.d/jenkins
  • 图中 /usr/bin/java 后面添加成你的java安装路径即可


    image.png

更改插件的设置

cd /var/lib/jenkins/updates  # 更新插件
# 替换插件下载地址和搜索地址
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

cd ~

vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
修改 https://updates.jenkins.io/update-center.json 为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

# 查看初始化密码 用于首次登录
cat /var/lib/jenkins/secrets/initialAdminPassword

# 添加jenkins 到docker用户组
gpasswd -a jenkins docker
systemctl start jenkins.service # 启动 jenkins 
systemctl enable jenkins.service # 开机启动
systemctl status jenkins.service # jenkins 状态 
systemctl sotp jenkins.service # 停止 jenkins 
  • jenkins 插件管理中 安装 插件 Docker Compose Build Step、gitlab
    丢弃旧的构建


    image.png

    构建设置


    image.png

docker-registry 安装

docker pull registry # 拉取镜像

vi /etc/docker/daemon.json # 写入以下内容:
 {   "insecure-registries": [
        "172.16.77.71:5000"  # 172.16.77.71:5000改成你的服务器地址
    ]
}

systemctl   daemon-reload  # 重启
systemctl restart docker.service

mkdir /home/registry/auth  & cd /home/registry/auth # 创建目录

# username  userpasswd 分别替换成你想设置的用户名和密码
docker run  --entrypoint htpasswd registry -Bbn  username  userpasswd > auth/htpasswd

docker run -d -p 5000:5000 --restart=always --name docker-hub  -v /home/registry:/var/lib/registry  -v /home/registry/auth:/auth  -e "REGISTRY_AUTH=htpasswd"  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd  registry  # 启动

Gitlab -CI(Runner) 服务器的安装

下载配置信息

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

安装

yum install -y gitlab-ci-multi-runner 

gpasswd -a gitlab-runner docker # 添加gitlab-runner 到docker用户组

在根目录创建 .gitlab-ci.yml 文件

# .gitlab-ci.yml定义阶段
stages:
    - build
    - test
    - deploy
job1:
    stage: test
    tags:
        - demo
    script:
        - echo "I am job1"
        - echo "I am test stage"
job2:
    stage: build
    tags:
        - demo
    script:
        - echo "I am job2"
        - echo "I am build stage"
#部署阶段
job3:
    stage: deploy
    tags:
        - demo
    script:
        - echo "I am job3"
        - echo "I am deploy stage"

注册 Runner
首先找到工程的


位置.png

gitlab地址和Token
gitlab-runner register

# 输入 GitLab 地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
图片中你的Url
# 输入 GitLab Token
Please enter the gitlab-ci token for this runner:
图片中你的Token

# 输入 Runner 的说明
Please enter the gitlab-ci description for this runner:
可以为空

# 设置 Tag,可以用于指定在构建规定的 tag 时触发 ci
Please enter the gitlab-ci tags for this runner (comma separated):
可以为空

# 选择 runner 执行器,这里我们选择的是 shell
Please enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:
shell

错误指南

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容