国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker + Jenkins + webhooks 自動部署基礎實踐

Charlie_Jade / 3655人閱讀

摘要:自動部署基礎實踐熟悉的基本操作實現本地后自動構建部署服務此實踐用于優化自己在實際工作中的工作流在本地開發到服務器登錄云服務器或者簡化流程后本地開發云服務器自動構建部署本實踐將結合技術來實現云服務器對各種環境的切換與部署。

Docker + Jenkins + webhooks 自動部署基礎實踐

熟悉 jenkins 的基本操作 ??

實現本地 git push 后 jenkins 自動構建部署服務 ??

此實踐用于優化自己在實際工作中的工作流:

在本地開發 project

git push project 到 git 服務器

登錄云服務器 git pull project

pm2 restart project 或者 node app.js

簡化流程后:

本地開發 project

git push

云服務器自動構建部署

本實踐將結合 docker 技術來實現云服務器對各種環境的切換與部署。

基本原理:

webhook 即為一個 url。 配合 jenkins, 你的 git 服務器會在有新提交的時候請求這個 url, 而這個 url 背后對應著 jenkins 內的構建任務, 如此便實現了自動化構建。

在本例中使用 docker 主要是為了確立運行環境的獨立性, 這里主要是為了便于安裝 jenkins 。 當然你也可以直接 yum install jenkins 把他安裝在云服務器上。

沒有使用 Jenkinsfile 或 blue ocean 來部署的原因是對開啟 webhook 不太友好「或許說是流程沒有這樣簡單順暢」。

docker 及 jenkins 安裝

我的服務器是 centos7.4, ssh 連接服務器后用命令行安裝 docker

yum install docker -y

service docker start

Jenkins 是一個用 Java 寫的開源的持續集成軟件。

為了避免安裝各種各樣的 Java 依賴, 我們直接安裝 Jenkins 鏡像, 并映射在云服務器的 8080 端口

我們依據 Jenkins 官方的教程 來安裝。 我安裝的是集成 blue ocean 版的鏡像

  docker run 
  --rm 
  -u root 
  -d 
  -p 8080:8080 
  -v jenkins-data:/var/jenkins_home 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v "$HOME":/home 
  -v /root:/root
  jenkinsci/blueocean

后臺運行并映射到服務器 8080 端口, 掛載服務器的 jenkins-data 文件夾到 jenkins 容器內, /var/run/docker.sock 用來監聽 docker 的連接

相比 Jenkins 原教程, 我在這里額外添加了 -d-v /root:/root 命令, -d 命令用于后臺啟動 Jenkins, -v /root:/root 用于掛載服務器的 root 文件夾到主機的 root 文件夾下

同時在我們的服務器內生成 ssh 秘鑰「用于 jenkins 拉取 git 項目的授權」

cat ~/.ssh/id_rsa.pub

ssh-keygen -t rsa -C "youremail"

cat ~/.ssh/id_rsa.pub

復制秘鑰, 粘貼到 git 服務器內的 sshKeys 內, 這樣 jenkins 就能在你每次 git push 后自動拉取你的 project 了。

稍等片刻, 在瀏覽器打開 8080 端口, 配置 jenkins

需要我們在 docker 內以命令行模式進入 jenkins 容器內獲取密碼

docker ps

找到出 jenkins/blueocean 容器的id

docker exec -it id sh

id  是你 docker ps 后 jenkins/blueocean 容器的 id

cd /var/jenkins_home/secrets/initialAdminPassword

查看密碼, 填寫到頁面上

設置 Jenkins 安全策略,取消防止跨站點請求偽造并保存「這樣才能遠程執行 webhooks」

在 jenkins/插件管理內安裝兩個插件

generic webhook triggerpost build task

Jenkins 部署 project

首先在你的 project 內新建 Dockerfile 文件, 內容如下:

# 拉取一個基本 node 運行環境的鏡像,作為基礎鏡像
FROM node:7-alpine


RUN mkdir -p /app
COPY . /app

WORKDIR /app
RUN npm install

EXPOSE 3000

# 開啟 node 服務器

CMD ["node", "app.js"]

我們利用 node:7-alpine 鏡像重新生成一個自己的鏡像

app.js 是我的啟動文件,內容如下:

const http = require("http")

http.createServer((req, res) => {
    res.end("jenkins t2")
}).listen(3000, () => {
    console.log("running on port 3000");
})

ok, 設置好 project 的基本服務后, 瀏覽器打開 jenkins 新建一個項目

開始設置 project 信息, 如果你沒有把前面生成的 sshkey 添加到你的 git 服務器中, 這個 project 將無法設置

然后設置 webhooks 的 token , 并勾選下方的 generic webhook trigger。

然后依據 generic webhook trigger 給出的提示把 你的服務器地址:8080/job/t1/build?token=你的token 這個hook 添加到你的 git 服務器上的 webhook 設置內。

設置構建任務, 這里我用 docker 構建一個叫 frontend 的鏡像, 在構建好鏡像后運行一個叫 express 的容器 「這里先要殺掉前一個叫 express 的容器,才能運行新的容器,因為如果每次構建時前一個容器還在運行即端口一直被占用著會導致運行失敗」。
構建 docker 容器時記得加參數 -d 不然構建任務會阻塞 jenkins 任務隊列。

保存修改,在本地修改代碼,并推送到 git 服務器,發現 Jenkins 開啟了自動構建。

其它

我的 git 服務器是 alicode 「一個 gitlab 服務, 可以放置私有 project, 當然你也可以自己搭建一個 gitlab」。

如果你使用其它 git 服務流程也大同小異, 例如 github 、 bitbucket 等等。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27249.html

相關文章

  • 使用 Jenkins 自動部署 Docker 服務(二、構建部署篇)

    摘要:如果還沒有搭建好可以使用的,請先移步到這篇文章進行搭建使用自動部署服務一搭建篇目標通過實現推送代碼后自動部署基于的服務準備工作獲取示例項目或者直接復制以下文件內容獲取示例項目項目文件頁面文件鏡像文件部署文件部署腳本文件頁面文件項目很簡單, 如果還沒有搭建好可以使用 Docker 的 Jenkins,請先移步到這篇文章進行搭建 使用 Jenkins 自動部署 Docker 服務(一、Je...

    denson 評論0 收藏0
  • Docker 入門(三):持續集成、持續部署

    摘要:為了看起來清晰,我寫了一個文件,將這個文件和之前的放在同一個目錄中,可以用以下命令快速啟動,啟動之后新構建的鏡像和容器都名為。 showImg(https://segmentfault.com/img/remote/1460000014924499?w=883&h=515); 在軟件開發過程中,如果我們每一次提交的代碼都能夠進行一次完整的編譯、測試、打包、發布,就能及早發現問題、及早修...

    newtrek 評論0 收藏0
  • Docker+Jenkins+Nodejs+Git+Webhook自動部署

    1.準備環境 一臺有網絡的Linux 服務器 Docker rpm安裝包,依賴包 libcgroup jdk1.7 OR 1.8環境下載 Jenkins WAR包下載 NodeJs 源碼包下載 依賴下載地址: https://pkgs.org/download/ https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ 2.安裝D...

    tuomao 評論0 收藏0
  • 手把手教你用JenkinsDocker的方式自動發布dotnet core程序

    摘要:部分首先我們要有個咯下載鏈接我們安裝官網教程安裝好安裝教程略嗯不是說好手把手么你妹的好好好我們還是來手把手教程好了首先安裝添加安裝源之后直接就好下面是的安裝命令其他系統自己玩一下就好下載啟動下載鏈接在這里面找最新的下載我當前 Jenkins部分 首先,我們要有個Jenkins咯,下載鏈接:https://jenkins.io/download/ 我們安裝官網教程安裝好jenkins,安...

    stackvoid 評論0 收藏0
  • 使用Docker+Jenkins自動構建部署

    摘要:使用自動構建部署環境阿里云,宿主機服務器安裝,在安全規則中確認端口開啟。完畢后,根據提示設置登陸賬戶。至此,完成自動化的構建和部署。當你推送代碼后就會實現自動構建,部署。容器出錯的是鏡像構建和鏡像運行,以及容器間通信的問題。 使用Docker+Jenkins自動構建部署 環境 阿里云ESC,宿主機服務器安裝Docker,在安全規則中確認8080端口開啟。 客戶端mac 運行jenk...

    qc1iu 評論0 收藏0

發表評論

0條評論

Charlie_Jade

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<