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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容