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

資訊專欄INFORMATION COLUMN

搭建Git服務(wù)器、編寫自動(dòng)部署腳本

jollywing / 3434人閱讀

摘要:搭建服務(wù)器編寫自動(dòng)部署腳本今天試了下在服務(wù)器上搭建服務(wù)器,并且編寫一個(gè)簡(jiǎn)單的自動(dòng)部署腳本。好了,試試吧原文連接搭建服務(wù)器編寫自動(dòng)部署腳本更多分享知識(shí)點(diǎn)請(qǐng)掃碼關(guān)注

搭建Git服務(wù)器、編寫自動(dòng)部署腳本

今天試了下在linux服務(wù)器上搭建Git服務(wù)器,并且編寫一個(gè)簡(jiǎn)單的自動(dòng)部署腳本。

主要參考 廖雪峰-GIT教程-搭建Git服務(wù)器

現(xiàn)在開始吧!

創(chuàng)建一個(gè)git用戶,用來(lái)運(yùn)行g(shù)it服務(wù)

adduser git

創(chuàng)建證書登錄

收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里,一行一個(gè)。

初始化Git倉(cāng)庫(kù)

先選定一個(gè)目錄作為Git倉(cāng)庫(kù),假定是/home/git/sample.git,在/home/git目錄下輸入命令:

git init --bare sample.git

Git就會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù),裸倉(cāng)庫(kù)沒有工作區(qū),因?yàn)榉?wù)器上的Git倉(cāng)庫(kù)純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉(cāng)庫(kù)通常都以.git結(jié)尾。然后,把owner改為git

chown -R git:git sample.git

禁用git用戶shell登錄

通過(guò)編輯/etc/passwd文件完成,找到你的git用戶的一行,例如:

git:x:1001:1001:,,,:/home/git:/bin/bash

/bin/bash改為/usr/bin/git-shell,例如:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過(guò)ssh使用git,但無(wú)法登錄shell,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動(dòng)退出。

克隆遠(yuǎn)程倉(cāng)庫(kù)

git clone git@server:sample.git

server是你的服務(wù)器域名或ip地址

如果git倉(cāng)庫(kù)和web目錄在同一臺(tái)服務(wù)器主機(jī)上:

git clone /home/git/sample.git

如果不是在git用戶的家目錄中創(chuàng)建的,比如/srv/gits/sample.git:

git clone git@server:/srv/gits/sample.git

如果clone成功,那么你的git服務(wù)器就搭建成功了。

接下來(lái):

自動(dòng)同步鉤子腳本

因?yàn)槲沂莣eb目錄和git是同一臺(tái)服務(wù)器

編輯 /home/git/sample.git/hooks/post-receive, post-receive就是在git服務(wù)器收到代碼推送后(push完成之后)執(zhí)行的腳本。

#!/bin/sh

while read oldrev newrev refname
do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    if [ "master" == "$branch" ]; then
        # Do something
        echo "post-receive in branch master" >> /tmp/git-sample.log
        unset GIT_DIR
        wwwPath=/var/www/html/sample
        cd $wwwPath && /usr/bin/git pull origin master
        exit 0
    fi
done

從腳本內(nèi)容可以看出,我們?cè)谂袛喈?dāng)前push的分支是master時(shí)執(zhí)行g(shù)it pull origin master操作。

給執(zhí)行權(quán)限:

chown -R git:git /home/git/sample.git/hooks/post-receive
chmod +x /home/git/sample.git/hooks/post-receive

因?yàn)槭莋it倉(cāng)庫(kù)和web目錄在同一臺(tái)服務(wù)器主機(jī)上,這里clone使用的是:

git clone /home/git/sample.git

因?yàn)橥侥_本的執(zhí)行用戶是git,所以要保證項(xiàng)目目錄要賦予git寫權(quán)限。容易出問(wèn)題的也是權(quán)限問(wèn)題。

好了,試試吧~

原文連接:

搭建Git服務(wù)器-編寫自動(dòng)部署腳本
?

更多分享知識(shí)點(diǎn),請(qǐng)掃碼關(guān)注:

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

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

相關(guān)文章

  • 從 0 到 1 再到 100, 搭建編寫、構(gòu)建一個(gè)前端項(xiàng)目

    摘要:從到再到搭建編寫構(gòu)建一個(gè)前端項(xiàng)目選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架搭建一個(gè)前端項(xiàng)目的方式有兩種選擇現(xiàn)成的項(xiàng)目模板自己搭建項(xiàng)目骨架。使用版本控制系統(tǒng)管理源代碼項(xiàng)目搭建好后,需要一個(gè)版本控制系統(tǒng)來(lái)管理源代碼。 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目 1. 選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架 搭建一個(gè)前端項(xiàng)目的方式有兩種:選擇現(xiàn)成的項(xiàng)目模板、自己搭建項(xiàng)目骨架。 ...

    call_me_R 評(píng)論0 收藏0
  • 從 0 到 1 再到 100, 搭建編寫、構(gòu)建一個(gè)前端項(xiàng)目

    摘要:從到再到搭建編寫構(gòu)建一個(gè)前端項(xiàng)目選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架搭建一個(gè)前端項(xiàng)目的方式有兩種選擇現(xiàn)成的項(xiàng)目模板自己搭建項(xiàng)目骨架。使用版本控制系統(tǒng)管理源代碼項(xiàng)目搭建好后,需要一個(gè)版本控制系統(tǒng)來(lái)管理源代碼。 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目 1. 選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架 搭建一個(gè)前端項(xiàng)目的方式有兩種:選擇現(xiàn)成的項(xiàng)目模板、自己搭建項(xiàng)目骨架。 ...

    wzyplus 評(píng)論0 收藏0
  • 從 0 到 1 再到 100, 搭建編寫、構(gòu)建一個(gè)前端項(xiàng)目

    摘要:從到再到搭建編寫構(gòu)建一個(gè)前端項(xiàng)目選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架搭建一個(gè)前端項(xiàng)目的方式有兩種選擇現(xiàn)成的項(xiàng)目模板自己搭建項(xiàng)目骨架。使用版本控制系統(tǒng)管理源代碼項(xiàng)目搭建好后,需要一個(gè)版本控制系統(tǒng)來(lái)管理源代碼。 從 0 到 1 再到 100, 搭建、編寫、構(gòu)建一個(gè)前端項(xiàng)目 1. 選擇現(xiàn)成的項(xiàng)目模板還是自己搭建項(xiàng)目骨架 搭建一個(gè)前端項(xiàng)目的方式有兩種:選擇現(xiàn)成的項(xiàng)目模板、自己搭建項(xiàng)目骨架。 ...

    aristark 評(píng)論0 收藏0
  • git webhooks 實(shí)現(xiàn)自動(dòng)拉取代碼

    摘要:而利用的功能,能夠讓我們省去這一步,下面我就以碼云的為例,實(shí)現(xiàn)服務(wù)端的代碼自動(dòng)同步部署。查看是哪個(gè)用戶執(zhí)行該命令參考文章使用腳本遠(yuǎn)程部署項(xiàng)目利用實(shí)現(xiàn)自動(dòng)部署代碼碼云通過(guò)實(shí)現(xiàn)自動(dòng)同步代碼部署執(zhí)行系統(tǒng)外部命令函數(shù) 當(dāng)進(jìn)行開發(fā)的環(huán)境在本地,而運(yùn)行的環(huán)境要在服務(wù)端時(shí),每一次提交代碼都需要在服務(wù)端pull一次。而利用git的hooks功能,能夠讓我們省去這一步,下面我就以碼云的webhooks為...

    marek 評(píng)論0 收藏0
  • hudson +gradle+git+maven(非必選)持續(xù)集成一 打包自動(dòng)

    摘要:持續(xù)集成正是針對(duì)這一類問(wèn)題的一種軟件開發(fā)實(shí)踐。持續(xù)集成的原則業(yè)界普遍認(rèn)同的持續(xù)集成的原則包括需要版本控制軟件保障團(tuán)隊(duì)成員提交的代碼不會(huì)導(dǎo)致集成失敗。 第一集 hudson+gradle+git+maven(非必選)持續(xù)集成編譯,打包,發(fā)布到倉(cāng)庫(kù)集成 前言 什么是持續(xù)集成 隨著軟件開發(fā)復(fù)雜度的不斷提高,團(tuán)隊(duì)開發(fā)成員間如何更好地協(xié)同工作以確保軟件開發(fā)的質(zhì)量已經(jīng)慢慢成為開發(fā)過(guò)程中不可回避的...

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

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

0條評(píng)論

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