成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

denson / 2836人閱讀

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

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

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

# 項(xiàng)目文件
├── index.html              # 頁面文件
├── Dockerfile              # 鏡像文件
├── docker-compose.src.yml  # Docker 部署文件
├── deploy_jenkins.sh       # 部署腳本
├── Jenkinsfile             # Jenkins Pipeline 文件
頁面文件
項(xiàng)目很簡單,就是一個靜態(tài)網(wǎng)頁
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")

# 刪除滾動更新殘留的容器
docker rm `docker ps -a | grep -w $CONTAINER"_"$CONTAINER | awk "{print $1}"`
# 強(qiá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 啟動服務(wù)
docker stack deploy -c docker-compose.jenkins.yml $CONTAINER
實(shí)現(xiàn)無工具自動部署
我們暫時(shí)忘記 Jenkins,先看看無工具自動部署是怎么實(shí)現(xiàn)的
初始化 Docker Swarm 集群網(wǎng)絡(luò)
由于我們使用了 Docker Stack,他可用于實(shí)現(xiàn)滾動更新,分布式集群,但依賴于  Docker Swarm 集群網(wǎng)絡(luò),直接使用會報(bào)錯,所以需要先初始化 Docker Swarm 集群網(wǎng)絡(luò)
# 初始化 Docker Swarm 集群網(wǎng)絡(luò)
docker swarm init
運(yùn)行部署腳本
./deploy_jenkins.sh
查看鏡像
docker images

查看容器
docker ps

瀏覽器打開
http://127.0.0.1:8081
成功自動部署

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

實(shí)現(xiàn) Jenkins 自動部署
Jenkins 的自動部署本來比較復(fù)雜,但是后來有了 Pipeline,一切都簡單了,Pipeline 是 Jenkins 的一個插件,初始化 Jenkins 的時(shí)候會推薦安裝,如果沒有請自行安裝
Jenkins Pipeline 文件
項(xiàng)目中如果有 Jenkinsfile 文件, Jenkins 檢測到就會自動按 Jenkinsfile 寫的流程運(yùn)行命令,例如這個 Jenkinsfile 文件里面寫的就是自動幫我們運(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 倉庫地址
選好 Git 分支
如果是私密倉庫,在 “Credentials” 那一欄添加賬號密碼然后選擇賬號就行

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

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


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

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


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

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/27401.html

相關(guān)文章

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

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

    Clect 評論0 收藏0
  • 一套基礎(chǔ)自動部署搭建過程

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

    mzlogin 評論0 收藏0
  • 從0開始搭建自動部署環(huán)境(續(xù))

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

    lily_wang 評論0 收藏0
  • 從0開始搭建自動部署環(huán)境(續(xù))

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

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

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

    princekin 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<