Jenkins 自動構(gòu)建 docker 鏡像 并推送到 阿里云倉庫
jenkins服務(wù)器搭建
1节吮、java環(huán)境安裝
yum install -y java
(或 直接執(zhí)行 yum install -y java-1.8.0-openjdk* )
[root@jenkins ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
2 下載 jenkins
yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.219-1.1.noarch.rpm
3 修改配置文件
vim /etc/sysconfig/jenkins
##################
JENKINS_PORT="9090" (默認8080,也可不改)
JENKINS_USER="root" (jenkins用戶 改為root)
##################
4 啟動服務(wù)
systemctl start jenkins
5 、配置防火墻規(guī)則
[root@jenkins ~]# firewall-cmd --zone=public --add-port=9090/tcp --permanent success
[root@jenkins ~]# firewall-cmd --reload
success
6 儿咱、瀏覽器訪問ip:9090奥吩, 修改清華源
6.1
解決 URL這里不是國內(nèi)的地址,方位國外的地址訪問失敗造成的。替換國內(nèi)地址
cd /var/lib/jenkins
vim hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
修改以后保存退出
systemctl restart jenkins #重啟生效
6.2 重啟生效后 在/var/lib/jenkins 會生成update 目錄
替換清華源下載插件
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
systemctl restart jenkins
6.3 進入
安裝推薦插件
等待安裝即可
創(chuàng)建管理賬戶
7 .升級git到2.0版本以上
7.1店诗、移除舊版本git
yum remove git -y
7.2、下載tar包并解壓
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz(由于下載的慢音榜,我們上傳)
tar -xvzf git-2.21.0.tar.gz
7.3庞瘸、下載依賴
yum groupinstall -y "Development Tools" #安裝開發(fā)套件
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib- devel gcc perl-ExtUtils-MakeMaker openssh-clients
7.4、編譯安裝
cd git-2.21.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
7.5赠叼、設(shè)置環(huán)境變量
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc
7.6擦囊、查看版本
[root@jenkins ~]# git version
8.安裝maven
8.1、下載安裝包并解壓
cd /usr/local
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven‐3/3.5.4/bina ries/apache‐maven‐3.5.4‐bin.tar.gz
tar -xf apache-maven-3.5.4-bin.tar.gz
mv apache‐maven‐3.5.4 maven (改名)
8.2 設(shè)置環(huán)境變量
vim /etc/profile
###########
export M2_HOME=/usr/local/maven
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH
###########
source /etc/profile
8.3嘴办、測試:mvn -v
[root@jenkins ~]# mvn -v
9 安裝插件
Gitlab作用:用于jenkins在gitlab中拉取源碼
Gitlab Hook 作用:本地發(fā)起push請求后瞬场,gitlab觸發(fā)一個HOOK,觸發(fā)gitlab鉤子后涧郊, 使用gitlab webhook調(diào)用服務(wù)器的一個鏈接
Gitlab Plugin
Gitlab Authentication 作用:認證主機的識別系統(tǒng)
Maven Integration
Pipeline Maven Integration
Publish Over SSH 作用:用于通過ssh部署應(yīng)用
Build Authorization Token Root
ssh
docker
docker-build-step
10 配置環(huán)境變量
10.1全局配置
1.git
進入容器 輸入 whereis git
2
java 默認的的話都是java 虛擬機贯被,找到j(luò)vm 路徑下
即JDK到此目錄下/usr/lib/jvm 找
(會報錯,下面的紅字妆艘,但不用管它彤灶,直接應(yīng)用即可)
因為使用的 時候需要編譯環(huán)境,編譯器需要編譯双仍,這里要有debug或其他的插件枢希,可能沒有裝全
這時候執(zhí)行 yum install -y java-1.8.0-openjdk* (它需要所有的jdk 的)
3.在進入全局配置maven
whereis maven
10.2系統(tǒng)配置
jenkins插件 docker-build-step 的配置
為了設(shè)置docker的遠程管理和遠程登錄
配置docker端口2375 遠程登錄
需要先修改docker配置文件 (這臺服務(wù)器上要有docker)
位置 /usr/lib/systemd/system/docker.service
操作:
設(shè)置docker 遠程登錄的端口
(給操作系統(tǒng)開遠程端口)
cd /usr/lib/systemd/system
vim docker.service
修改前
注釋并添加(-H 后 添加端口等)
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
修改后
重啟docker
Systemctl daemon-reload
systemctl restart docker
jenkins插件 docker-build-step 的配置并 測試連接
找到 docker builder
此處填寫 可以是 遠程的ip,也可以是本地的
tcp://127.0.0.1:2375
點擊 test
11 .gitlab 項目中 添加 docker目錄 Dockerfile
進入剛創(chuàng)建的docker目錄 創(chuàng)建dockerfile
dockerfile內(nèi)容
獲得基礎(chǔ)鏡像
FROM tomcat
作者的信息
MAINTAINER "BY ZEE Version V2 15694917204@163.com"
設(shè)置工作目錄 (即剛進入時的目錄)
WORKDIR /usr/local/tomcat/webapps
清空一下
RUN rm -rf /usr/local/tomcat/webapps/*
拷貝war包到容器中,并改名
ADD MavenWebProject-dev.war /usr/local/tomcat/webapps/ROOT.war
設(shè)置用戶
USER root
暴露端口
EXPOSE 8080
設(shè)置啟動命令
CMD ["catalina.sh","run"]
12 創(chuàng)建maven項目并測試
剛在gitlab 改的那個項目 clone一下朱沃,填到此處苞轿,并添加gitlab的用戶和密碼
選擇執(zhí)行shell
再次添加 執(zhí)行docker 命令
選擇創(chuàng)建鏡像茅诱,并添加 docker 鏡像的tag ,用阿里云的倉庫(因為下一步要上傳到阿里云)
又一次添加 執(zhí)行docker 命令
選擇push images搬卒,填上 要push鏡像名瑟俭,添加阿里云 URL,和登錄阿里云的用戶和密碼
保存
13 構(gòu)建并查看
到阿里云倉庫 查看 是否 存在push 的鏡像