系統(tǒng)版本:Centos7.2
實(shí)例主機(jī)IP:192.168.12.235
一、構(gòu)建GitLab環(huán)境
1稠鼻、拉取鏡像
#docker pull docker.io/gitlab/gitlab-ce
2额港、定義本地存儲(chǔ)路徑
#GITLAB_HOME=/docker/data/gitlab
3析显、拉取容器
docker run -d --hostname gitlab \
-p 8443:443 \
-p 80:80 \
-p 2222:22 \
--name gitlab \
--restart always \
-v $GITLAB_HOME/config:/etc/gitlab \
-v $GITLAB_HOME/logs:/var/log/gitlab \
-v $GITLAB_HOME/data:/var/opt/gitlab \
docker.io/gitlab/gitlab-ce
-------------------------------------------------------分割線--------------------------------------------------------
4蛹找、配置GitLab容器
#docker exec -t -i gitlab vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "XXXXX@163.com"
gitlab_rails['smtp_password'] = "XXXXX"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'XXXXX@163.com'
user['git_user_email'] = "XXXXX@163.com"
注意以上的hqh546020152@163.com代表用戶名蜕便,即郵箱地址;
而smtp_password不是郵箱的登陸密碼而是網(wǎng)易郵箱的客戶端授權(quán)密碼贩幻,
再網(wǎng)易郵箱web頁(yè)面的設(shè)置-POP3/SMTP/IMAP-客戶端授權(quán)密碼查看轿腺,如下圖。
------------------------------------------------------------分割線---------------------------------------------------------------
5丛楚、重啟gitlab
#docker restart gitlab
------------------------------------------------------------分割線---------------------------------------------------------------
6族壳、登錄gitlab
curl http://192.168.12.235
點(diǎn)擊"Register",進(jìn)行賬號(hào)注冊(cè)趣些。(首次訪問(wèn)時(shí)將需要設(shè)置管理員密碼)
7仿荆、創(chuàng)建新項(xiàng)目
Visibility Level為設(shè)置項(xiàng)目的訪問(wèn)權(quán)限。(鑒于安全性和保密性、一般選擇Private)
Private?(私人)
Project access must be granted explicitly to each user.?(項(xiàng)目必須被授予明確每個(gè)用戶的訪問(wèn)拢操。)
Internal?(內(nèi)部)
The project can be accessed by any logged in user.?(該項(xiàng)目由任何登錄用戶可以訪問(wèn)锦亦。)
Public?(公共)
The project can be accessed without any authentication.(可以訪問(wèn)這個(gè)項(xiàng)目沒(méi)有任何身份驗(yàn)證。)
到此就完成了GitLab環(huán)境的搭建和項(xiàng)目的創(chuàng)建令境。
-------------------------------------------------------分割線--------------------------------------------------------
二杠园、設(shè)置其他Linux服務(wù)器可訪問(wèn)GitLab,并進(jìn)行代碼的上傳、下載舔庶。(下列設(shè)置基于gitlab項(xiàng)目訪問(wèn)權(quán)限為Private)
1抛蚁、配置宿主機(jī)秘鑰可登錄git服務(wù)器
#ssh-keygen -t rsa -C "注冊(cè)賬號(hào)所用的郵箱"??????? 在Linux服務(wù)器上生產(chǎn)秘鑰對(duì)
示例: #ssh-keygen -t rsa -C "hqh546020152@163.com"?????? 生成秘鑰對(duì)
#cat id_rsa.pub????????????????????????????? 查看秘鑰對(duì)的公鑰,并上次到GitLab
------------------------------------------------------------分割線---------------------------------------------------------------
2惕橙、在Linux服務(wù)器上上登錄Gitlab
ssh -T git@192.168.12.235 -p 2222
提示:
Welcome to GitLab, huangqh!????? 則說(shuō)明配置成功瞧甩,可正常訪問(wèn)GitLab服務(wù)器
Permission denied (publickey).??? 則說(shuō)明配置異常,可能為秘鑰對(duì)匹配不上
------------------------------------------------------------分割線---------------------------------------------------------------
3弥鹦、官方使用教程????????????????????????? (使用以下教程前提為完成了第6步驟):
Git global setup #Git全局設(shè)置
#git config --global user.name "huangqh"
#git config --global user.email "hqh546020152@163.com"
Create a new repository #創(chuàng)建一個(gè)新的存儲(chǔ)庫(kù)
#git clone ssh://git@192.168.12.236:2222/hqh546020152/test.git??? #遠(yuǎn)程將版本庫(kù)cp到本地
#cd test
#touch README.md
#git add README.md????????????????? #將文件提交到暫存區(qū)
#git commit -m "add README" ?? #將在暫存區(qū)中的文件推送修改到本地庫(kù)
#git push -u origin master???????????? #將本地的master分支推送到origin主機(jī)肚逸,同時(shí)指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)直接使用git push惶凝。
查看GitLab管理頁(yè)面上該項(xiàng)目的文件信息:
備注:
1吼虎、上傳完在GitLab管理網(wǎng)頁(yè)上如能看到文件,則說(shuō)明配置正常苍鲜。能正常上傳思灰、下載。
2混滔、在Jenjins+GitLab構(gòu)建的環(huán)境中洒疚,命令#git push -u origin master(將本地庫(kù)推送到origin主機(jī)中)將可觸發(fā)鉤子(webhook),Jenkins接受到之后將執(zhí)行一系列自定義的Job坯屿。
------------------------------------------------------------分割線---------------------------------------------------------------
Existing folder #現(xiàn)有的文件夾進(jìn)行操作(上傳下載)
cd existing_folder
git init
git clone ssh://git@192.168.12.236:2222/hqh546020152/test_ci_cd.git
git add .
git commit -m "Initial commit"
git push -u origin master
------------------------------------------------------------分割線---------------------------------------------------------------
Existing Git repository #現(xiàn)有的Git存儲(chǔ)庫(kù)進(jìn)行操作(上傳下載)
cd existing_repo
git remote add origin git@192.168.12.236:hqh546020152/test_ci_cd.git
git push -u origin --all
git push -u origin --tags