天天看點

docker+jenkins+gogs部署

一、Docker環境安裝

參考連結:https://blog.csdn.net/dingzhukun/article/details/90672128

安裝yum-utils:
yum install -y yum-utils device-mapper-persistent-data lvm2
為yum源添加docker倉庫位置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Copy to cli
安裝docker
yum install docker-ce
啟動docker
systemctl start docker
開機自啟
systemctl enable docker
           

二、mysql安裝

下載下傳mysql5.7的docker鏡像:
docker pull mysql:5.7
使用docker指令啟動:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7
參數說明
-p 3306:3306:将容器的3306端口映射到主機的3306端口
-v /mydata/mysql/conf:/etc/mysql:将配置檔案夾挂在到主機
-v /mydata/mysql/log:/var/log/mysql:将日志檔案夾挂載到主機
-v /mydata/mysql/data:/var/lib/mysql/:将資料檔案夾挂載到主機
-e MYSQL_ROOT_PASSWORD=root:初始化root使用者的密碼
進入運作mysql的docker容器:
docker exec -it mysql /bin/bash
使用mysql指令打開用戶端:
mysql -uroot -pwsg123456 --default-character-set=utf8
           

三、防火牆

ystemctl status firewalld    ##檢視火牆狀态
systemctl start firewalld     ##開啟火牆服務
systemctl stop firewalld      ##關閉火牆服務
systemctl enable firewalld     ##開機自動開啟
systemctl disable firewalld    ##開機不自啟
systemctl reload firewalld     ##重新開機防火牆
firewall-cmd --permanent --zone=public --add-port=8080/tcp  ##添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,沒有此參數重新開機後失效)
firewall-cmd --permanent --zone=public --remove-port=8080/tcp ##删除端口
firewall-cmd --add-service=ssh --permanent  ##永久添加ssh服務(添加完後重新加載一下就可以檢視了)
iptables -nL
firewall-cmd --list-ports  ##檢視已經開放的端口

# 配置 docker 容器内允許通路外部網絡(需重新開機 firewalld、docker 以生效)
firewall-cmd --permanent --zone=trusted --change-interface=docker0
           

四、gogs安裝

下載下傳Gogs的Docker鏡像
docker pull gogs/gogs
使用docker run指令即可運作服務
docker run -p 10022:22 -p 10080:3000 --name=gogs \
-v /mydata/gogs:/data  \
-d gogs/gogs
           
docker+jenkins+gogs部署

web鈎子關聯jenkins

docker+jenkins+gogs部署
http://wsgx.club:8080/gogs-webhook/?job=superJob
測試推送是否成功
           

五、docker私有倉庫的建立

docker私有倉庫的建立
​ 下載下傳私有倉庫:docker pull registry
​ 跑私有倉庫鏡像:docker run -d --name=registry -p 5000:5000 registry
​ 啟動私有倉庫:docker start registry
​ 打開浏覽器驗證:http://IP位址:5000/v2/_catalog看到頁面顯示{“repositories”:[ ]}表示私有倉庫建立成功。并且内容為空。
​ 修改daemon.json:vi /etc/docker/daemon.json
​ 在裡面添加{"insecure‐registries":["192.168.184.135:5000"]} ,讓docker信任私有倉庫位址。
​ 重新開機docker服務。systemctl restart docker



修改主控端的docker配置,讓其可以遠端通路 vi /lib/systemd/system/docker.service
​ 在中ExecStart=後添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix://var/run/docker.sock
 eg: -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
​ 重新整理配置。重新開機服務
​ systemctl daemon-reload
​ systemctl restart docker
​ docker start registry
           

五、Jenkins安裝Jenkins的配置

下載下傳Jenkins的Docker鏡像
docker pull jenkins/jenkins:lts
在Docker容器中運作Jenkins:
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-d jenkins/jenkins:lts

需安裝插件Gogs webhook 鈎子跟gogs關聯

插件如果下載下傳不了,可以先關閉防火牆,之後再開啟
如果建立任務沒有建構一個maven項目 ,安裝插件Maven Integration
           

Jenkins的配置

docker+jenkins+gogs部署
docker+jenkins+gogs部署
docker+jenkins+gogs部署
docker+jenkins+gogs部署

系統管理 全局工具配置

配置jdk

docker+jenkins+gogs部署

配置maven

docker+jenkins+gogs部署

打包部署SpringBoot應用

一、将代碼上傳到Git倉庫

二、maven插件,不用也行,jenkins會執行打包

docker+jenkins+gogs部署

在Jenkins中建立執行任務

job配置

建立maven任務

docker+jenkins+gogs部署

1、配置git

docker+jenkins+gogs部署

2、配置建構觸發器

docker+jenkins+gogs部署

3、配置pre steps

docker+jenkins+gogs部署
#!/bin/bash -il
result=$(docker ps | grep mall-registry)
if [[ "$result" != "" ]]
then
echo "stop mall-registry"
docker stop mall-registry
fi
result1=$(docker ps -a | grep mall-registry)
if [[ "$result1" != "" ]]
then
echo "rm mall-registry"
docker rm mall-registry
fi
result2=$(docker images | grep mall-registry)
if [[ "$result2" != "" ]]
then
echo "rmi mall-registry:0.0.1-SNAPSHOT"
docker rmi mall-registry:0.0.1-SNAPSHOT
fi
           

4、配置pom

docker+jenkins+gogs部署

5、配置post steps

docker+jenkins+gogs部署
#!/bin/bash -il
docker run -p 6001:6001 --name mall-registry  -v /etc/localtime:/etc/localtime  -v /mydata/app/backstage-registry/logs:/var/logs  -d mall-registry:0.0.1-SNAPSHOT
echo "docker run"
docker start mall-registry
echo "docker start"