小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

docker

 黃金屋1 2017-03-26

docker用來(lái)隔離應(yīng)用還是很方便的,一來(lái)本身的操作較為簡(jiǎn)單,二來(lái)資源占用也比虛擬機(jī)要小得多,三來(lái)也較為安全,因?yàn)橄駭?shù)據(jù)庫(kù)這樣的應(yīng)用不會(huì)再全局暴露端口,同時(shí)應(yīng)用間的通信通過(guò)加密和端口轉(zhuǎn)發(fā),更加安全。

Gitlab是目前比較流行的開(kāi)源類Github代碼管理平臺(tái)。Gitlab使用Rails開(kāi)發(fā),使用PostgreSQL或MySQL數(shù)據(jù)庫(kù),Redis做緩存。一般自己搭建私有代碼倉(cāng)庫(kù),Gitlab通常是首選。這里簡(jiǎn)單介紹一下dockerized Gitlab。

Gitlab的docker鏡像早已有人做好了,并且維護(hù)相當(dāng)不錯(cuò)。大家可以前往其GitHub倉(cāng)庫(kù)了解該鏡像的情況。官方repo的readme中已經(jīng)有詳細(xì)的安裝配置方案,這里我簡(jiǎn)單的梳理一下部署流程。

安裝Docker

這里以Ubuntu 14.04發(fā)行版為例,在bash中輸入一下命令安裝最新的docker:

sudo apt-get purge docker.io
curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update
sudo apt-get install lxc-docker

注意: 如果你使用了阿里云最新推出的Docker鏡像,那么可以省略本節(jié)的步驟。因?yàn)榘⒗镌频倪@個(gè)鏡像已經(jīng)自帶了1.2版的docker,版本比較新,可以直接使用。

安裝docker-gitlab

使用如下命令可以使Docker下載對(duì)應(yīng)版本的Gitlab鏡像:

docker pull sameersbn/gitlab:7.5.3

上面的命令下載7.5.3版的Gitlab,如果想下載最新版本,可以輸入以下命令:

docker pull sameersbn/gitlab:latest

待下載完成后就算完成安裝了。
也可以Clone剛才的提到的倉(cāng)庫(kù),然后在本機(jī)上build鏡像:

git clone https://github.com/sameersbn/docker-gitlab.git
cd docker-gitlab
docker build --tag="$USER/gitlab" .

注意上面最后一行命令結(jié)尾有一個(gè)"."符號(hào),不要掉了。

安裝PostgreSQL

Gitlab推薦使用PostgreSQL作為數(shù)據(jù)庫(kù)。既然使用了docker,那么我們?yōu)楹尾豢紤]把所有的組件都用docker包裝起來(lái)?我們一樣可以下載PostgreSQL的鏡像完成安裝,這種安裝更加便捷。

首先輸入以下命令下載PostgreSQL鏡像:

docker pull sameersbn/postgresql:latest

然后我們要為數(shù)據(jù)庫(kù)默認(rèn)的表空間建立目錄以存放數(shù)據(jù):

mkdir -p /opt/postgresql/data

這里/opt/postgresql/data部分可以替換成你自己希望建立的地址。
如果是使用SELinux,那么還需要改變一下這個(gè)目錄的安全設(shè)置:

sudo chcon -Rt svirt_sandbox_file_t /opt/postgresql/data

如果沒(méi)有使用SELinux,可以跳過(guò)上面一條命令。

最后使用以下命令行啟動(dòng)數(shù)據(jù)庫(kù):

docker run --name=postgresql -d   -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password'   -v /opt/postgresql/data:/var/lib/postgresql   sameersbn/postgresql:latest

這里,"-e"選項(xiàng)后面的內(nèi)容請(qǐng)不要隨意變更,這里的配置都是Gitlab默認(rèn)的數(shù)據(jù)庫(kù)配置,如果沒(méi)有在后面Gitlab鏡像啟動(dòng)的設(shè)置里面做相應(yīng)的修改的話,這里的修改會(huì)讓程序無(wú)法正常運(yùn)行。

安裝Redis

同樣,我們可以使用docker來(lái)安裝Redis:

docker pull sameersbn/redis:latest

然后啟動(dòng)它:

docker run --name=redis -d sameersbn/redis:latest

啟動(dòng)gitlab

在最終啟動(dòng)Gitlab之前,我們還需要為Gitlab創(chuàng)建一個(gè)目錄用來(lái)存放提交上來(lái)的代碼,docker-gitlab內(nèi)部使用/home/git/data這個(gè)目錄存放代碼,我們?cè)谌萜魍獠縿?chuàng)建一個(gè)目錄然后在啟動(dòng)的時(shí)候掛載到這個(gè)路徑即可:

mkdir -p /opt/gitlab/data
mkdir -p /opt/gitlab/backups

同樣,如果使用SELinux,需要修改目錄的安全配置:

sudo chcon -Rt svirt_sandbox_file_t /opt/gitlab/data
sudo chcon -Rt svirt_sandbox_file_t /opt/gitlab/backups

在完成上面所有的步驟以后,我們可以用以下命令啟動(dòng)Gitlab:

 docker run --name='gitlab' -d    -e 'GITLAB_HOST=192.168.57.91'    -e 'GITLAB_PORT=10080'    -e 'GITLAB_SSH_PORT=10022'    -e 'GITLAB_BACKUPS=weekly'    -e 'DB_TYPE=postgres'    -e 'DB_HOST=172.17.0.28'    -e 'DB_NAME=gitlabhq_production'    -e 'DB_USER=gitlab'    -e 'DB_PASS=password'    -e 'REDIS_HOST=172.17.0.10'    -e 'REDIS_PORT=6379'    -p 10022:22 -p 10080:80    -v /gitlab/data:/home/git/data    -v /gitlab/backups:/home/git/data/backups    -v /gitlab/log:/var/log/gitlab    sameersbn/gitlab:latest3

上面的命令將使用10080作為Gitlab的Web訪問(wèn)端口,10022將作為ssh push和pull代碼的端口。
在本地可以使用瀏覽器打開(kāi)http://192.168.57.91:10080/users/sign_in來(lái)訪問(wèn)Gitlab,初始登錄網(wǎng)站使用root賬戶,用戶名為root,密碼為:5iveL!fe,登錄后需要立即修改密碼。

網(wǎng)頁(yè)打開(kāi)giblab的管理界面:
http://192.168.57.91:10080/users/sign_in


這里解釋一下各參數(shù):

-d: 后臺(tái)運(yùn)行
-e:配置Gitlab運(yùn)行的環(huán)境變量,這個(gè)參數(shù)很重要,具體有哪些環(huán)境變量,后面列舉
-p: 端口轉(zhuǎn)發(fā)規(guī)則
-v: 共享目錄掛載,即docker容器內(nèi)外數(shù)據(jù)共享

Gitlab的環(huán)境變量配置比較多,這里列舉一下比較重要的Gitlab的環(huán)境變量:

  • GITLAB_HOST: 這個(gè)是Gitlab服務(wù)器的hostname,你需要將此設(shè)定為網(wǎng)站的域名或者ip(不帶端口號(hào)),默認(rèn)值為localhost,這個(gè)值會(huì)被Gitlab用來(lái)生成repo的鏈接,所以必須要設(shè)置。否則,在創(chuàng)建的repo中,會(huì)發(fā)現(xiàn)所有的repo鏈接都是以localhost為hostname。
  • GITLAB_PORT Gitlab網(wǎng)站的訪問(wèn)端口,這里的設(shè)置要結(jié)合端口轉(zhuǎn)發(fā)一起設(shè)置,否則會(huì)導(dǎo)致網(wǎng)站無(wú)法訪問(wèn),默認(rèn)值為80
  • GITLAB_SSH_PORT Gitlab的SSH代碼提交方式使用的SSH端口,這里的設(shè)置要結(jié)合端口轉(zhuǎn)發(fā)一起設(shè)置,否則會(huì)導(dǎo)致代碼無(wú)法提交,默認(rèn)值為22。如果是在VPS上部署,這個(gè)值請(qǐng)使用別的端口,比如上面提到的10022端口,否則會(huì)與VPS原本的SSH端口產(chǎn)生沖突,造成SSH無(wú)法登錄VPS
  • GITLAB_BACKUPS Gitlab的自動(dòng)備份配置,有disabledailyweeklymonthly四個(gè)可選值,默認(rèn)為disable。建議打開(kāi)自動(dòng)備份
  • GITLAB_BACKUP_DIR Gitlab自動(dòng)備份目錄,默認(rèn)值為/home/git/data/backups

其他的參數(shù)請(qǐng)參考repo中的README.md.

FAQ:
如果在clone項(xiàng)目時(shí)報(bào):Permission denied (publickey). 錯(cuò)誤!處理方法如下,此方法也可以解決github的同樣問(wèn)題:
1.ssh-keygen -t rsa -C "xxxx@xxx.com"   #這里你的郵箱地址生成一對(duì)加密key
   Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/gitlab_rsa           #輸入你要生成的gitlab私鑰文件
   Enter passphrase (empty for no passphrase):                                            #輸入你在gitlab上的密碼
+--[ RSA 2048]----+           
|          o.     |           
|         ...     |           
|        ..       |           
|       +  .      |           
|      = S.o o    |           
|     o * +.+ . . |           
|      + ..... . E|           
|     .    ...o   |           
|          ..+o.  |           
+-----------------+           
Enter same passphrase again:  
                                                        

2.把私鑰身份文件加入到ssh_config 里面。
$ vim /etc/ssh/ssh_config 找到 IdentityFile  增加一行 IdentityFile ~/.ssh/gitlab_rsa 

3.在gitlab_rsa的目錄里找到 gitlab_rsa.pub 公鑰文件。復(fù)制文件內(nèi)容,通過(guò)gitlab的web管理頁(yè),添加到你的項(xiàng)目里。

再次嘗試,即可:

git clone ssh://git@192.168.57.91:10022/songaimin/test.git

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多