1. 下載gitlab鏡像
docker pull gitlab/gitlab-ce
2. 運(yùn)行g(shù)itlab實(shí)例
GITLAB_HOME=/mnt/disk1/gitlab
docker run -d --hostname gitlab --publish 5443:443 --publish 5080:8080 --publish 5022:22 --name gitlab --restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ce
注意:上面5080映射到gitlab容器的8080(因?yàn)間itlab默認(rèn)使用80對(duì)外服務(wù))唇敞,創(chuàng)建完成后必需進(jìn)入gitlab容器修改vim /etc/gitlab/gitlab.rb內(nèi)容為:
external_url 'http://xx.com:8080'
3. 配置gitlab實(shí)例
3.1 配置郵箱:
docker exec -t -i gitlab vim /etc/gitlab/gitlab.rb
下面以網(wǎng)易163郵箱為例配置郵箱:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxxx@163.com"
gitlab_rails['smtp_password'] = "xxxxpassword"
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'] = "xxxx@163.com"
user["git_user_email"] = "xxxx@163.com"
注意以上的xxxx@163.com代表用戶名折汞,即郵箱地址,而xxxxpassword不是郵箱的登陸密碼而是網(wǎng)易郵箱的客戶端授權(quán)密碼, 再網(wǎng)易郵箱web頁(yè)面的設(shè)置-POP3/SMTP/IMAP-客戶端授權(quán)密碼查看症革。
#3.2 配置外部訪問(wèn)URL
這個(gè)必須配置,否則默認(rèn)以容器的主機(jī)名作為URL,剛開(kāi)始由于做了端口映射80->8080, 因此設(shè)置為
external_url "http://10.103.240.36:8080"
后來(lái)發(fā)現(xiàn)external_url只能配置ip或者域名跌前,不能有端口昼蛀,否則不能啟動(dòng)宴猾。
于是只能把端口設(shè)置為80->80,然后external_url設(shè)置為:
注:每次重啟docker或gitlab的容器曹洽,都會(huì)將 /etc/gitlab/gitlab.rb下的external_url 地址的端口(如:上面是8080)刷新到nginx配置文件:/var/opt/gitlab/nginx/conf/gitlab-http.conf 鳍置,這樣就需注意必須與docker run... 創(chuàng)建容器時(shí)映射的端口一致,否則下次重啟nginx端口配置就會(huì)被覆蓋送淆,訪問(wèn)不了gitlab
external_url "http://10.103.240.36"
4. 重啟gitlab
docker restart gitlab
參考文獻(xiàn):https://segmentfault.com/a/1190000000345686
FQA
1税产,HTTP 502: Whoops, GitLab is taking too much time to respond.
解決:
# gitlab-ctl stop
# vi /etc/gitlab/gitlab.rb (取消注釋并修改端口)
unicorn['port'] = 8801
# gitlab-ctl reconfigure (重新生成配置)
# gitlab-ctl restart
# lsof -i:8081 (check whether unicorn has started properly)
有時(shí)候修改配置后要不斷刷新才能生效
2,點(diǎn)擊項(xiàng)目Clone按鈕偷崩,地址卻是localhost(或主機(jī)名)辟拷,如何修改為域名地址?
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
修改節(jié)點(diǎn)(注不包含http前綴):production.gitlab.host=git.xxx.com