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

資訊專欄INFORMATION COLUMN

GitLab [Webhooks] 實(shí)現(xiàn)自動(dòng)化服務(wù)器部署

roadtogeek / 577人閱讀

摘要:簡(jiǎn)介我們?cè)诓渴鹞覀兊膽?yīng)用時(shí)我們一般會(huì)尋求一些云平臺(tái)服務(wù)器部署當(dāng)然也可以直接在服務(wù)器里拉取遠(yuǎn)程倉(cāng)庫(kù)的代碼當(dāng)然我們也可以實(shí)現(xiàn)通過(guò)鉤子來(lái)實(shí)現(xiàn)服務(wù)器與遠(yuǎn)程倉(cāng)庫(kù)代碼的同步這樣一來(lái)我們?cè)诒镜靥峤还δ芊种У絺}(cāng)庫(kù)中倉(cāng)庫(kù)也會(huì)同步到服務(wù)器這樣我們就無(wú)需自己手動(dòng)

簡(jiǎn)介

我們?cè)诓渴鹞覀兊?b>web應(yīng)用時(shí) 我們一般會(huì)尋求一些云平臺(tái)服務(wù)器部署 當(dāng)然也可以直接在服務(wù)器里拉取遠(yuǎn)程倉(cāng)庫(kù)的代碼

當(dāng)然我們也可以實(shí)現(xiàn)通過(guò)Webhooks(鉤子)來(lái)實(shí)現(xiàn)服務(wù)器與遠(yuǎn)程倉(cāng)庫(kù)代碼的同步

這樣一來(lái)我們?cè)诒镜靥峤还δ芊种У絺}(cāng)庫(kù)中 倉(cāng)庫(kù)也會(huì)同步到服務(wù)器 這樣我們就無(wú)需自己手動(dòng)去同步項(xiàng)目代碼

選擇

我們的項(xiàng)目大都托管在Github 當(dāng)然Github在建立私有倉(cāng)庫(kù)時(shí)是需要付費(fèi)的 那么在自己的網(wǎng)站部署時(shí) 我們完全可以選擇其他的平臺(tái)

目前來(lái)說(shuō)我們需要試下Webhooks自動(dòng)化部署 那么我們可以選擇自己合適的平臺(tái) 這里我選擇GitLab

當(dāng)然國(guó)內(nèi)的話還可以選擇 Coding 和 碼云

這些在國(guó)內(nèi)都是不錯(cuò)的代碼托管平臺(tái) 你都可以創(chuàng)建自己的私有項(xiàng)目倉(cāng)庫(kù)

之前我的網(wǎng)站項(xiàng)目是托管在Coding 但是近期我重寫我的網(wǎng)站項(xiàng)目 因?yàn)?b>GitLab本身可以建立自己的私有倉(cāng)庫(kù)并且沒(méi)有限制

同樣的也可以設(shè)置成員的權(quán)限 分支的工作流也十分清晰強(qiáng)大 現(xiàn)在很多的公司也都選擇了GitLab so 我還是會(huì)去嘗試一下新的服務(wù)

前期準(zhǔn)備

Github一樣 我們都要去生成一個(gè)ssh key這樣我們以后在提交項(xiàng)目和項(xiàng)目分支時(shí)就可以免去身份驗(yàn)證

在本地終端執(zhí)行

$ ssh-keygen -t rsa -C "youremail@example.com"

這里填寫你GitLLab注冊(cè)的郵箱即可(最好保持一致)

你可以一直默認(rèn)下去 當(dāng)然為了和之前的發(fā)生沖突 你可以自己在生成的時(shí)候重新命名

我這里生成的是gitlab_rsagitlab_rsa.pub

接著在命令行執(zhí)行(添加剛生成的公鑰和私鑰)

eval $(ssh-agent -s)
ssh-add ~/.ssh/gitlab_rsa

查看我們的公鑰內(nèi)容

cat ~/.ssh/gitlab_rsa.pub

拿到我們的公鑰內(nèi)容 我們就可以去GitLab添加我們的sh key

添加完畢之后當(dāng)然是測(cè)試本地連接

$ ssh -T git@gitlab.com

如果沒(méi)有問(wèn)題的話 會(huì)回饋給我們正確的歡迎信息

具體的生成信息可以看官方的 ssh文檔

我們?cè)诖酥霸?b>GitLab已經(jīng)上傳了我們的項(xiàng)目 在項(xiàng)目中的Setting->Integrations里添加腳本鉤子

比如這邊我添加的url是http://kobeman.com/hook/index.php

然后填入的tokenispace

現(xiàn)在可以去服務(wù)器的站點(diǎn)目錄下克隆遠(yuǎn)程倉(cāng)庫(kù)的項(xiàng)目 這里我的站點(diǎn)目錄是/data/www

那么在這個(gè)目錄下克隆我們遠(yuǎn)程的項(xiàng)目 克隆完畢后 當(dāng)然這里以Laravel項(xiàng)目為例 完成一些權(quán)限 這些可自行查閱

能夠成功跑起來(lái)我們的項(xiàng)目就ok 這里我訪問(wèn)的網(wǎng)址是www.kobeman.com 下面就需要添加鉤子文件

這里我們項(xiàng)目的根目錄 這里可以是public目錄下新建hook目錄 添加一個(gè)index.php 具體內(nèi)容如下

具體代碼我已經(jīng)放在我的gist上 如果有什么問(wèn)題歡迎提出issue


這里的鉤子文件需要注意以下幾點(diǎn)

php配置里需要注釋掉shell_exec這些被禁用的函數(shù) 詳見(jiàn) shell_exec

執(zhí)行命令時(shí)切換到管理員用戶最好

查看是否進(jìn)入你的項(xiàng)目目錄 這里我是通過(guò)chdir進(jìn)入項(xiàng)目目錄 因?yàn)?b>cd命令是沒(méi)有用的 詳見(jiàn) Can"t "cd" with PHP shell_exec()

git pull不能執(zhí)行 這應(yīng)該就是權(quán)限的問(wèn)題 詳見(jiàn) shell 腳本中調(diào)用 git pull 命令無(wú)法執(zhí)行

這里為什么我們需要獲取這個(gè)$_SERVER的參數(shù)呢 因?yàn)?b>GitLab是通過(guò)post請(qǐng)求這個(gè)地址 所以為了驗(yàn)證之前填入的token

我們這里是去驗(yàn)證他的請(qǐng)求頭部 因?yàn)樗且哉?qǐng)求頭部傳遞給我們的 如圖所示

為了了解他的頭部到底包含了什么信息 我們可以都打印出來(lái)看下

所以說(shuō)如果我們驗(yàn)證這個(gè)token成功的話再去進(jìn)入到項(xiàng)目目錄 執(zhí)行git pull拉取我們最新的代碼

這樣也就實(shí)現(xiàn)了 自動(dòng)化的代碼部署 在驗(yàn)證過(guò)程中我打印了下這個(gè) $_SERVER["HTTP_X_GITLAB_TOKEN"]

這樣一來(lái)下次再去提交我們的最新的功能代碼時(shí)就可以哦同步到我們的服務(wù)器

相關(guān)鏈接

Gist 地址

GitLab 官網(wǎng)

Coding 官網(wǎng)

碼云 官網(wǎng)

GitLab key生成

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

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

相關(guān)文章

  • Docker + Jenkins + webhooks 自動(dòng)部署基礎(chǔ)實(shí)踐

    摘要:自動(dòng)部署基礎(chǔ)實(shí)踐熟悉的基本操作實(shí)現(xiàn)本地后自動(dòng)構(gòu)建部署服務(wù)此實(shí)踐用于優(yōu)化自己在實(shí)際工作中的工作流在本地開(kāi)發(fā)到服務(wù)器登錄云服務(wù)器或者簡(jiǎn)化流程后本地開(kāi)發(fā)云服務(wù)器自動(dòng)構(gòu)建部署本實(shí)踐將結(jié)合技術(shù)來(lái)實(shí)現(xiàn)云服務(wù)器對(duì)各種環(huán)境的切換與部署。 Docker + Jenkins + webhooks 自動(dòng)部署基礎(chǔ)實(shí)踐 熟悉 jenkins 的基本操作 ?? 實(shí)現(xiàn)本地 git push 后 jenkins 自...

    Charlie_Jade 評(píng)論0 收藏0
  • Docker 入門(三):持續(xù)集成、持續(xù)部署

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

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

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

0條評(píng)論

閱讀需要支付1元查看
<