一、下載docker鏡像
前提:docker引擎已經安裝好。
- docker pull gitlab/gitlab-ce
gitlab是8.13.1版本。
二、啟動應用
- docker run -d -h gitlab.zhaojigang.com -p 80:80 -v /etc/gitlab/:/etc/gitlab/ -v /var/log/gitlab/:/var/log/gitlab/ -v /var/opt/gitlab/:/var/opt/gitlab/ --name gitlab docker.io/gitlab/gitlab-ce
說明:本次啟用是為了生成配置文件。
- /etc/gitlab/:配置文件所在的目錄
- /var/log/gitlab:日志所在目錄
- /var/opt/gitlab:數據所在目錄
三、修改配置文件
vi /etc/gitlab/gitlab.rb
- external_url 'http://gitlab.zhaojigang.com:8929'(將http端口設置為8929而不是默認的80)
四、指定端口啟動
- docker run -d -h gitlab.zhaojigang.com -p 8929:8929 -p 2289:22 -v /etc/gitlab/:/etc/gitlab/ -v /var/log/gitlab/:/var/log/gitlab/ -v /var/opt/gitlab/:/var/opt/gitlab/ --name gitlab docker.io/gitlab/gitlab-ce
說明:
- -h gitlab.zhaojigang.com
- hostname:以gitlab.zhaojigang.com作為域名訪問gitlab,需要在DNS中進行域名映射(或者在訪問機器/etc/hosts中配置域名映射)
- -p 8929:8929
- 8929:http端口
- -p 2289:22
- 22:ssh端口,ssh端口不要隨便替換,代價會比較大,這樣之后,發現clone是可以的,但是push不行
注意:如果有ipv4無法forward的問題,先使用:
- sysctl -w net.ipv4.ip_forward=1
五、瀏覽器訪問(直接使用ip不使用上邊指定的hostname)
- sudo vi /etc/hosts,添加如下一行映射
10.211.55.3 gitlab.zhaojigang.com
- http://10.211.55.3:8929/(或者http://gitlab.zhaojigang.com:8929/)
- 其中,10.211.55.3是gitlab所在機器的地址
在這里,創建密碼(eg.123456),之后使用用戶名(root)和密碼(123456)登陸。
六、新建group
說明:將所有的微服務代碼存放在services組下,該組的可見性是Internal(可自己指定)
- private:該組下的所有項目只能被該組的成員看到
- internal:所有登陸的用戶都可以看到該組下的所有項目
創建group失敗!!!因為services是保留字,所以不能做組名。改成service是可以的。
七、新建project
八、將原有的項目(myframework)push到遠程master
- cd Desktop/microservice/myframework/
- git init
- git remote add origin http://gitlab.zhaojigang.com:8929/service/myframework.git
- git add --all
- git commit -m"init"
- git push origin HEAD:master
此時,將產生2個分支,一個本地master,一個遠程master。
九、創建dev分支
1、在如上頁面創建遠程dev分支(該分支根據master創建)。
2、本地創建dev分支
- git checkout -b dev
此時"git branch -a"只能看到三個分支,本地dev、master以及遠程master。
修改中一些代碼后,
3、本地dev追蹤遠程dev
- git add --all
- git commit -m"xxx"
- git push origin HEAD:dev
此時"git branch -a"就能看到4個分支,本地dev、master以及遠程dev、master。
4、將遠程dev分支的代碼merge到遠程master分支上‘
附:ssh key配置
在本機(git客戶端安裝的機器上)執行
ssh-keygen -t rsa -C "admin@example.com"
之后將生成的公鑰(cat ~/.ssh/id_rsa.pub
)貼到gitlab的ssh key框中即可。
遺留問題:
- host DNS解析
- 采用在訪問機器配置/etc/hosts映射關系的方式解決
- .gitignore不起作用
- 解決方案:http://www.pfeng.org/archives/840