GitLab 中文社區(qū)版 Docker 鏡像
基于 GitLab 官方社區(qū)版 Docker 鏡像制作的中文 Docker 鏡像, 漢化補(bǔ)丁來(lái)自網(wǎng)友larryli (8.8.5之前), 后續(xù)由網(wǎng)友 xhang 維護(hù)。
由于漢化工作需要大量的人力, 所以中文版的版本會(huì)比官方的版本稍低, 如果刻意最求最新版, 請(qǐng)使用官方的 GitLab Docker 鏡像。
如果發(fā)現(xiàn)漢化的問(wèn)題, 請(qǐng)向 xhang 反映。
獲取鏡像
docker pull beginor/gitlab-ce:11.3.0-ce.0
運(yùn)行
通常會(huì)將 GitLab 的配置 (etc) 、 日志 (log) 、數(shù)據(jù) (data) 放到容器之外, 便于日后升級(jí), 因此請(qǐng)先準(zhǔn)備這三個(gè)目錄。
sudo mkdir -p /mnt/sda1/gitlab/etc
sudo mkdir -p /mnt/sda1/gitlab/log
sudo mkdir -p /mnt/sda1/gitlab/data
sudo mkdir -p /mnt/sda1/gitlab/etc/ssl(配置ssl證書(shū))
sudo chmod 700 /mnt/sda1/gitlab/etc/ssl
或者:
sudo mkdir /mnt/sda1/gitlab/{etc/ssl,data,log} -pv
也可細(xì)分:
sudo mkdir /mnt/sda1/gitlab/{etc/ssl/{key,crt},data,log} -pv
準(zhǔn)備好這四個(gè)目錄之后, 就可以開(kāi)始運(yùn)行 Docker 鏡像了。 我的建議是使用unless-stopped 作為重啟策略, 因?yàn)檫@樣可以手工停止容器, 方便維護(hù)。
完整的運(yùn)行命令如下:
docker run --detach \
--hostname centos \
--publish 40443:40443 \
--publish 40080:80 \
--publish 40022:22 \
--name gitlab \
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab \
--volume /mnt/sda1/gitlab/etc/ssl:/etc/gitlab/ssl \
--volume /mnt/sda1/gitlab/backups:/var/opt/gitlab/backups \
beginor/gitlab-ce:11.3.0-ce.0
如果需要開(kāi)啟SELINUX,則需要這樣運(yùn)行:
docker run --detach \
--hostname centos \
--publish 40443:40443 \
--publish 40080:80 \
--publish 40022:22 \
--name gitlab \
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab:Z \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab:Z \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab:Z \
--volume /mnt/sda1/gitlab/etc/ssl:/etc/gitlab/ssl:Z \
--volume /mnt/sda1/gitlab/backups:/var/opt/gitlab/backups:Z \
beginor/gitlab-ce:11.3.0-ce.0
也可以是如下命令,簡(jiǎn)化單詞
docker run -d \
-p 40443:40443 \
-p 40080:80 \
-p 40022:22 \
--name gitlab \
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab \
--volume /mnt/sda1/gitlab/backups:/var/opt/gitlab/backups \
beginor/gitlab-ce:11.3.0-ce.0
或者添加SELINUX:
docker run -d \
-p 40443:40443 \
-p 40080:80 \
-p 40022:22 \
--name gitlab \
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab:Z \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab:Z \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab:Z \
--volume /mnt/sda1/gitlab/backups:/var/opt/gitlab/backups:Z \
beginor/gitlab-ce:11.3.0-ce.0
升級(jí)
小版本升級(jí)(例如從 8.8.2 升級(jí)到 8.8.3), 參照官方的說(shuō)明, 將原來(lái)的容器停止, 然后刪除:
docker stop gitlab
docker rm gitlab
然后重新拉一個(gè)新版本的鏡像下來(lái),
docker pull beginor/gitlab-ce:11.3.0-ce.0
還使用原來(lái)的運(yùn)行命令運(yùn)行,
docker run --detach \
--hostname centos \
--publish 40443:40443 \
--publish 40080:80 \
--publish 40022:22 \
--name gitlab \
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab \
--volume /mnt/sda1/gitlab/backups:/var/opt/gitlab/backups \
beginor/gitlab-ce:11.3.0-ce.0
GitLab 在初次運(yùn)行的時(shí)候會(huì)自動(dòng)升級(jí), 為了預(yù)防萬(wàn)一, 還是建議先備份一下 /mnt/sda1/gitlab/ 這個(gè)目錄。
大版本升級(jí)(例如從 8.7.x 升級(jí)到 8.8.x)用上面的操作有可能會(huì)出現(xiàn)錯(cuò)誤, 如果出現(xiàn)錯(cuò)誤可以嘗試登錄到容器內(nèi)部, 可以用 docker exec , 也可以用 ssh ,
依次執(zhí)行下面的命令:
sudo docker exec -it continerID /bin/bash
或者,僅僅只編輯/etc/gitlab/gitlab.rb
sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb
更新配置
gitlab-ctl reconfigure
gitlab-ctl restart
More
想知道更多高級(jí)的玩法, 請(qǐng)參考這些:
The official GitLab Community Edition Docker image is available on Docker Hub.
The official GitLab Enterprise Edition Docker image is available on Docker Hub.
The complete usage guide can be found in Using GitLab Docker images.
The Dockerfile used for building public images is in Omnibus Repository.
Check the guide for creating Omnibus-based Docker Image.
gitlab容器配置https
1、頒發(fā)自簽證書(shū)
生成證書(shū)到/mnt/sda1/gitlab/etc/ssl
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \
"/C=FR/ST=Charente/L=Mornac/O=Office/CN=www.gitlab-test.com" -keyout \
/mnt/sda1/gitlab/etc/ssl/www.gitlab-test.com.key -out /mnt/sda1/gitlab/etc/ssl/www.gitlab-test.com.crt
2、先啟動(dòng)容器
docker run --detach \
--hostname centos \
--publish 40443:40443 \
--publish 40080:80 \
--publish 40022:22 \
--name gitlab \
--restart unless-stopped \
--volume /mnt/sda1/gitlab/etc:/etc/gitlab \
--volume /mnt/sda1/gitlab/log:/var/log/gitlab \
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.3.0-ce.0
3、停止容器
sudo docker stop gitlab
4、修改配置文件
vim /mnt/sda1/gitlab/etc/gitlab.rb
## GitLab URL
external_url 'https://test.kingtroldata.com:40443'
################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/www.gitlab-test.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/www.gitlab-test.com.key"
nginx['proxy_set_headers'] = {
"X-Forwarded-Proto" => "https",
"X-Forwarded-Ssl" => "on",
}
####ldap
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'ad01.mdde.com'
port: 389
uid: 'sAMAccountName'
method: 'plain'
bind_dn: 'CN=gitlabadmin,CN=Users,DC=mdde,DC=com'
password: 'Mdddt88'
active_directory: true
allow_username_or_email_login: true
base: 'OU=maksad,DC=mdde,DC=com'
EOS
gitlab_rails['gitlab_shell_ssh_port'] = 22
####SMTP
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.mdde.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "syssin@mdde.com"
gitlab_rails['smtp_password'] = "Masss"
gitlab_rails['smtp_domain'] = "mail.mdde.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
sudo docker start gitlab
或者
sudo docker exec -it continerID /bin/bash
或者,僅僅只編輯/etc/gitlab/gitlab.rb
sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb
更新配置
gitlab-ctl reconfigure
gitlab-ctl restart
Notice:
1、其次由于是測(cè)試環(huán)境,屬于內(nèi)網(wǎng)布設(shè),因此需要服務(wù)器/etc/hosts 文件和 自身pc主機(jī)C:\Windows\System32\drivers\etc\hosts 中添加相關(guān)域名解析信息
具體如下:
192.168.1.196 www.gitlab-test.com
2、最好用Chrome瀏覽器,導(dǎo)入之前的自簽證書(shū)www.gitlab-test.com.crt文件。存至個(gè)人目錄即可
3、第一次訪問(wèn)https://www.gitlab-test.com:40443/然后會(huì)提示修改密碼。
官方參考文檔
https://docs.gitlab.com/omnibus/docker/
https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https
https://gitlab.com/gitlab-org/gitlab-ce/issues?scope=all&utf8=%E2%9C%93&state=all