成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 Jenkins 自動(dòng)部署 Docker 服務(wù)(二、構(gòu)建部署篇)

denson / 2782人閱讀

摘要:如果還沒(méi)有搭建好可以使用的,請(qǐng)先移步到這篇文章進(jìn)行搭建使用自動(dòng)部署服務(wù)一搭建篇目標(biāo)通過(guò)實(shí)現(xiàn)推送代碼后自動(dòng)部署基于的服務(wù)準(zhǔn)備工作獲取示例項(xiàng)目或者直接復(fù)制以下文件內(nèi)容獲取示例項(xiàng)目項(xiàng)目文件頁(yè)面文件鏡像文件部署文件部署腳本文件頁(yè)面文件項(xiàng)目很簡(jiǎn)單,

如果還沒(méi)有搭建好可以使用 Docker 的 Jenkins,請(qǐng)先移步到這篇文章進(jìn)行搭建

使用 Jenkins 自動(dòng)部署 Docker 服務(wù)(一、Jenkins 搭建篇) 目標(biāo)
通過(guò) Jenkins 實(shí)現(xiàn)推送代碼后自動(dòng)部署基于 Docker 的服務(wù)
準(zhǔn)備工作
獲取示例項(xiàng)目或者直接復(fù)制以下文件內(nèi)容
# 獲取示例項(xiàng)目
git clone https://github.com/kwkwc/jenkins_demo.git

# 項(xiàng)目文件
├── index.html              # 頁(yè)面文件
├── Dockerfile              # 鏡像文件
├── docker-compose.src.yml  # Docker 部署文件
├── deploy_jenkins.sh       # 部署腳本
├── Jenkinsfile             # Jenkins Pipeline 文件
頁(yè)面文件
項(xiàng)目很簡(jiǎn)單,就是一個(gè)靜態(tài)網(wǎng)頁(yè)
index.html


    
        
        Jenkins demo
    
    
        

Jenkins demo

鏡像文件
鏡像以 nginx 為基礎(chǔ)鏡像,然后復(fù)制 index.html 進(jìn)容器
Dockerfile
FROM nginx:1.15.2
ENV REFRESHED_AT 2018-08-09

COPY ./index.html /usr/share/nginx/html/index.html

RUN ln -sf /dev/stdout /var/log/nginx/access.log 
    && ln -sf /dev/stderr /var/log/nginx/error.log

EXPOSE 80

STOPSIGNAL SIGTERM

CMD ["nginx", "-g", "daemon off;"]
Docker 部署文件
設(shè)置了 8081 端口和部署失敗重試
docker-compose.src.yml
version: "3.4"
services:
  jenkins_demo:
    image: IMAGE_LATEST
    deploy:
      restart_policy:
        condition: on-failure
    expose:
      - "80"
    ports:
      - 8081:80
部署腳本 deploy_jenkins.sh
#!/bin/bash

# 容器名稱
CONTAINER="jenkins_demo"
# 鏡像名稱(以日期時(shí)間為鏡像標(biāo)簽,防止重復(fù))
IMAGE=$CONTAINER":"$(date -d "today" +"%Y%m%d_%H%M%S")

# 刪除滾動(dòng)更新殘留的容器
docker rm `docker ps -a | grep -w $CONTAINER"_"$CONTAINER | awk "{print $1}"`
# 強(qiáng)制刪除滾動(dòng)更新殘留的鏡像
docker rmi --force `docker images | grep -w $CONTAINER | awk "{print $3}"`

# 創(chuàng)建新鏡像
docker build -t $IMAGE . && 

# 刪除 docker-compose.jenkins.yml 文件,防止使用相同鏡像
rm -rf docker-compose.jenkins.yml && 

# 復(fù)制 docker-compose.src.yml 文件,防止污染原文件
cp docker-compose.src.yml docker-compose.jenkins.yml && 

# 替換鏡像名標(biāo)志位為最新鏡像
sed -i s%IMAGE_LATEST%$IMAGE%g docker-compose.jenkins.yml && 

# 使用 docker stack 啟動(dòng)服務(wù)
docker stack deploy -c docker-compose.jenkins.yml $CONTAINER
實(shí)現(xiàn)無(wú)工具自動(dòng)部署
我們暫時(shí)忘記 Jenkins,先看看無(wú)工具自動(dòng)部署是怎么實(shí)現(xiàn)的
初始化 Docker Swarm 集群網(wǎng)絡(luò)
由于我們使用了 Docker Stack,他可用于實(shí)現(xiàn)滾動(dòng)更新,分布式集群,但依賴于  Docker Swarm 集群網(wǎng)絡(luò),直接使用會(huì)報(bào)錯(cuò),所以需要先初始化 Docker Swarm 集群網(wǎng)絡(luò)
# 初始化 Docker Swarm 集群網(wǎng)絡(luò)
docker swarm init
運(yùn)行部署腳本
./deploy_jenkins.sh
查看鏡像
docker images

查看容器
docker ps

瀏覽器打開(kāi)
http://127.0.0.1:8081
成功自動(dòng)部署

更改內(nèi)容
嘗試修改 index.html 內(nèi)容再運(yùn)行部署腳本 ./deploy_jenkins.sh
效果

實(shí)現(xiàn) Jenkins 自動(dòng)部署
Jenkins 的自動(dòng)部署本來(lái)比較復(fù)雜,但是后來(lái)有了 Pipeline,一切都簡(jiǎn)單了,Pipeline 是 Jenkins 的一個(gè)插件,初始化 Jenkins 的時(shí)候會(huì)推薦安裝,如果沒(méi)有請(qǐng)自行安裝
Jenkins Pipeline 文件
項(xiàng)目中如果有 Jenkinsfile 文件, Jenkins 檢測(cè)到就會(huì)自動(dòng)按 Jenkinsfile 寫的流程運(yùn)行命令,例如這個(gè) Jenkinsfile 文件里面寫的就是自動(dòng)幫我們運(yùn)行剛才的部署腳本
Jenkinsfile
pipeline {
  agent none
  stages {
    stage("Deploy") {
      agent any
      steps {
        echo "Deploying"
        sh "./deploy_jenkins.sh"
      }
    }
  }
}
新建任務(wù)
輸入任務(wù)名稱,選擇流水線

填寫信息
只需要填寫流水線里面的信息
"定義" 選擇 "Pipeline script from SCM"
"SCM" 選擇 "Git"
"Repository URL" 填寫 Git 倉(cāng)庫(kù)地址
選好 Git 分支
如果是私密倉(cāng)庫(kù),在 “Credentials” 那一欄添加賬號(hào)密碼然后選擇賬號(hào)就行

查看任務(wù)
保存后回到主頁(yè)就可以看到我們新建的任務(wù),可以看到狀態(tài)、運(yùn)行情況等信息

手動(dòng)構(gòu)建
點(diǎn)擊一下界面的立即構(gòu)建按鈕就可以開(kāi)始構(gòu)建了


自動(dòng)構(gòu)建(定時(shí)查詢)
設(shè)置構(gòu)建觸發(fā)器,例如每 30 分鐘查詢一次是否有更新,有則自動(dòng)構(gòu)建

自動(dòng)構(gòu)建(主動(dòng)通知)
主動(dòng)通知需要安裝插件,這里以 Gitea 為例子,Gitea 使用的是 Gogs 的插件
"系統(tǒng)管理" --> "插件管理" --> "可選插件" 搜索 Gogs,勾選直接安裝,安裝成功后在項(xiàng)目配置里面會(huì)多出一個(gè) "Gogs Webhook" 選項(xiàng),不需要配置任何東西,安裝了就行


設(shè)置 Gitea 鉤子
在 Gitea 的 Webhooks 中填寫下面的 URL 就可以實(shí)現(xiàn)推送代碼后主動(dòng)通知 Jenkins 自動(dòng)部署,其他基于 Git 的倉(cāng)庫(kù)設(shè)置一樣
http://127.0.0.1:8080/gogs-webhook/?job=jenkins_demo

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27401.html

相關(guān)文章

  • 使用 Jenkins 自動(dòng)部署 Docker 服務(wù)(一、Jenkins 搭建

    摘要:直接使用官方的鏡像一般會(huì)有兩個(gè)問(wèn)題導(dǎo)致不能正常自動(dòng)部署基于的服務(wù)。 直接使用 Jenkins 官方的鏡像一般會(huì)有兩個(gè)問(wèn)題導(dǎo)致不能正常自動(dòng)部署基于 Docker 的服務(wù)。 存在的問(wèn)題 官方的鏡像默認(rèn)不是使用 root 賬號(hào),雖然 Jenkins 可以正常啟動(dòng),但是因?yàn)闆](méi)有權(quán)限導(dǎo)致不能向宿主機(jī)寫文件 Jenkins 基于 Docker 搭建,雖然 Jenkins 同樣可以正常啟動(dòng),但不能...

    Clect 評(píng)論0 收藏0
  • 一套基礎(chǔ)自動(dòng)部署搭建過(guò)程

    摘要:?jiǎn)栴}背景公司初創(chuàng)技術(shù)團(tuán)隊(duì),沒(méi)有任何基礎(chǔ)設(shè)施的情況下,需要搭建一系列管理以及自動(dòng)化部署等工具所以引發(fā)了下面一系列的部署過(guò)程,歷時(shí)兩天,中間也是碰到各種問(wèn)題,但最終把基本工具全部搭建成功,耶,下面帶大家一起看下此次搭建過(guò)程。 問(wèn)題背景 公司初創(chuàng)技術(shù)團(tuán)隊(duì),沒(méi)有任何基礎(chǔ)設(shè)施的情況下,需要搭建一系列code管理以及自動(dòng)化部署等工具....所以引發(fā)了下面一系列的部署過(guò)程,歷時(shí)兩天,中間也是碰到各種...

    mzlogin 評(píng)論0 收藏0
  • 從0開(kāi)始搭建自動(dòng)部署環(huán)境(續(xù))

    摘要:從開(kāi)始搭建自動(dòng)部署環(huán)境續(xù)前言上一篇從開(kāi)始搭建自動(dòng)部署環(huán)境雖然環(huán)境搭建起來(lái)了,但是配置少了一部分步驟。創(chuàng)建本地倉(cāng)庫(kù)參考新建項(xiàng)目項(xiàng)目是我寫的一個(gè)用來(lái)測(cè)試環(huán)境的項(xiàng)目,代碼托管在上。 從0開(kāi)始搭建自動(dòng)部署環(huán)境(續(xù)) 前言 上一篇從0開(kāi)始搭建自動(dòng)部署環(huán)境雖然環(huán)境搭建起來(lái)了,但是配置少了一部分步驟。本來(lái)應(yīng)該寫到上一篇中,但是這樣做篇幅過(guò)長(zhǎng)了。另外,此篇會(huì)使用自動(dòng)部署一個(gè)同步在Github上的Spr...

    lily_wang 評(píng)論0 收藏0
  • 從0開(kāi)始搭建自動(dòng)部署環(huán)境(續(xù))

    摘要:從開(kāi)始搭建自動(dòng)部署環(huán)境續(xù)前言上一篇從開(kāi)始搭建自動(dòng)部署環(huán)境雖然環(huán)境搭建起來(lái)了,但是配置少了一部分步驟。創(chuàng)建本地倉(cāng)庫(kù)參考新建項(xiàng)目項(xiàng)目是我寫的一個(gè)用來(lái)測(cè)試環(huán)境的項(xiàng)目,代碼托管在上。 從0開(kāi)始搭建自動(dòng)部署環(huán)境(續(xù)) 前言 上一篇從0開(kāi)始搭建自動(dòng)部署環(huán)境雖然環(huán)境搭建起來(lái)了,但是配置少了一部分步驟。本來(lái)應(yīng)該寫到上一篇中,但是這樣做篇幅過(guò)長(zhǎng)了。另外,此篇會(huì)使用自動(dòng)部署一個(gè)同步在Github上的Spr...

    shuibo 評(píng)論0 收藏0
  • Jenkins + Docker 簡(jiǎn)單部署 node.js 項(xiàng)目

    摘要:目前官方已開(kāi)始推薦使用替代之前的做為基礎(chǔ)鏡像環(huán)境。包括鏡像下載速度加快,鏡像安全性提高,主機(jī)之間的切換更方便,占用更少磁盤空間等。 有了前幾篇的基礎(chǔ)后,我們現(xiàn)在已經(jīng)能 docker 篇: 構(gòu)建 docker 鏡像 上傳私有倉(cāng)庫(kù) 拉取私有鏡像 啟動(dòng)容器 jenkins 篇: 配置 pipeline 觸發(fā) pipeline 接下來(lái)就可以結(jié)合兩者,用 jenkins + docker...

    princekin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<