docker安裝gitlab漢化版
一、拉取鏡像
查找鏡像
docker search gitlab
增加查找條件stars>=12的鏡像
docker search -f STARS=12 gitlab
[root@localhost docker]# docker search gitlab
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/gitlab/gitlab-ce GitLab Community Edition docker image base... 2357 [OK]
docker.io docker.io/sameersbn/gitlab Dockerized gitlab web server 1095 [OK]
docker.io docker.io/gitlab/gitlab-runner GitLab CI Multi Runner used to fetch and r... 466 [OK]
docker.io docker.io/twang2218/gitlab-ce-zh 漢化的 GitLab 社區版 Docker Image 161 [OK]
docker.io docker.io/gitlab/gitlab-ee GitLab Enterprise Edition docker image bas... 128
docker.io docker.io/jangrewe/gitlab-ci-android GitLab CI image for building Android apps 49 [OK]
docker.io docker.io/centurylink/gitlab This image uses the image from sameersbn /... 26 [OK]
docker.io docker.io/cdrx/rancher-gitlab-deploy Painless deployment of projects built with... 22 [OK]
docker.io docker.io/edbizarro/gitlab-ci-pipeline-php Build and test PHP applications with Gitla... 18
docker.io docker.io/klud/gitlab-runner GitLab Runner for ARM devices 16
docker.io docker.io/gitlab/gitlab-runner-helper 13
docker.io docker.io/ciricihq/gitlab-sonar-scanner Gitlab Docker container to run sonar-scann... 12 [OK]
docker.io docker.io/dockerphp/gitlab-ci-pipeline Gitlab CI pipeline for PHP applications 3 [OK]
docker.io docker.io/gitlab/cog GitLab Bundle for Cog 3
docker.io docker.io/sgillespie/gitlab-runner A Dockerized GitLab Runner that automatica... 3 [OK]
docker.io docker.io/lorands/gitlab-merge-request-resource This is a fork of swisscom/gitlab-merge-re... 1 [OK]
docker.io docker.io/mastertinner/gitlab-merge-request-resource A concourse resource to check for new merg... 1 [OK]
docker.io docker.io/primetoninc/gitlab gitlab-ce 1 [OK]
docker.io docker.io/adamkl/gitlab-merge-request-resource Customized with support for gitlab ssh on ... 0 [OK]
docker.io docker.io/boldcommerce/gitlab-merge-request-resource Reverted build of Swisscom's resource unti... 0 [OK]
docker.io docker.io/gitlab/gitlab-qa GitLab QA has a test suite that allows end... 0
docker.io docker.io/instrumentisto/gitlab-builder Docker image with minimal toolchain requir... 0 [OK]
docker.io docker.io/samcontesse/gitlab-merge-request-resource A concourse resource to check for new merg... 0 [OK]
docker.io docker.io/sicony/npm-cache-gitlab-mr Concourse CI npm cache resource for gitlab... 0
docker.io docker.io/stanfordlegion/gitlab-ci An image for Gitlab CI. 0 [OK]
[root@localhost docker]# docker pull docker.io/twang2218/gitlab-ce-zh
拉取漢化版鏡像
[root@localhost docker]# docker pull docker.io/twang2218/gitlab-ce-zh
使用的鏡像twang2218/gitlab-ce-zh
在docker官網網址https://hub.docker.com/r/twang2218/gitlab-ce-zh/tags
其他中文鏡像庫docker公共庫的gitlab漢化版地址 https://hub.docker.com/r/gitclub/gitlab-ce-zh
二、運行
鏡像啓動說明
使用
簡單運行
如果想簡單的運行一下看看,可以執行這個命令:
docker run -d -p 3000:80 gitclub/gitlab-ce-zh:10.4.0
可以將 10.4.0 換成你所需要的版本標籤。
啓動後就可以通過主機的 3000 端口看到運行結果了,比如用的是本機 Docker 的話,訪問:http://localhost:3000 即可。
測試結束後,徹底清除容器可以用命令:
docker rm -fv <容器ID>
這樣可以停止、刪除容器,並清除數據。
使用 Docker Compose
正常部署時,可以使用 Docker Compose 來配置啓動。建立一個 docker-compose.yml,內容如下:
version: ‘2’
services:
gitlab:
image: ‘gitclub/gitlab-ce-zh:10.4.0’
restart: unless-stopped
hostname: ‘gitlab.example.com’
environment:
TZ: ‘Asia/Shanghai’
GITLAB_OMNIBUS_CONFIG: |
external_url ‘http://gitlab.example.com’
gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’
# 需要配置到 gitlab.rb 中的配置可以在這裏配置,每個配置一行,注意縮進。
# 比如下面的電子郵件的配置:
# gitlab_rails[‘smtp_enable’] = true
# gitlab_rails[‘smtp_address’] = “smtp.exmail.qq.com”
# gitlab_rails[‘smtp_port’] = 465
# gitlab_rails[‘smtp_user_name’] = "[email protected]"
# gitlab_rails[‘smtp_password’] = “password”
# gitlab_rails[‘smtp_authentication’] = “login”
# gitlab_rails[‘smtp_enable_starttls_auto’] = true
# gitlab_rails[‘smtp_tls’] = true
# gitlab_rails[‘gitlab_email_from’] = ‘[email protected]’
ports:
- ‘80:80’
- ‘443:443’
- ‘22:22’
volumes:
- config:/etc/gitlab
- data:/var/opt/gitlab
- logs:/var/log/gitlab
volumes:
config:
data:
logs:
然後使用命令 docker-compose up -d 來啓動,停止服務使用 docker-compose down。
如果你的服務器有域名,將上面的 gitlab.example.com 替換爲實際域名。
實驗時,也可以直接修改 /etc/hosts 方便測試。比如:
127.0.0.1 gitlab.example.com
使用 Docker 命令啓動
直接使用 docker 命令要比使用 docker-compose 繁瑣一些,但是可以達到一樣的效果。
首先,Docker 容器數據應該存儲於卷中,在這裏我們使用最簡單的本地命名卷:
gitlab-config 存儲 GitLab 配置信息
gitlab-data 存儲數據庫
gitlab-logs 存儲日誌
然後,我們需要創建自定義網絡,從而讓容器運行於獨立的網絡中,區別於默認網橋。
docker network create gitlab-net
準備好後,開始運行 Gitlab 容器:
docker run -d
–hostname gitlab.example.com
-p 80:80
-p 443:443
-p 22:22
–name gitlab
–restart unless-stopped
-v gitlab-config:/etc/gitlab
-v gitlab-logs:/var/log/gitlab
-v gitlab-data:/var/opt/gitlab
–network gitlab-net
gitclub/gitlab-ce-zh:10.4.0
如果需要進入容器修改配置文件,可以用 docker exec 命令進入容器:
$ docker exec -it gitlab bash
root@09f6e32c528c:/# vi /etc/gitlab/gitlab.rb
root@09f6e32c528c:/# gitlab-ctl reconfigure
Starting Chef Client, version 12.12.15
resolving cookbooks for run list: [“gitlab”]
…
如需停止服務,直接運行 docker stop gitlab。
如需卸載服務及相關內容,可以執行:
docker stop gitlab
docker rm gitlab
docker network rm gitlab-net
docker volume rm gitlab-config gitlab-datagitlab-logs
注意事項
登錄
啓動 GitLab 後,第一次訪問時,會要求設置 root 用戶的密碼,密碼不得小於8位。設置好後,就可以登錄使用了。
對於早期版本,可以使用默認的 root 用戶密碼 5iveL!fe 登錄。
配置 SSH 端口
這裏運行示例中,無論是使用 docker-compose.yml 還是 docker run 都使用的是 SSH 默認端口 22 去映射容器 SSH 端口。其目的是希望比較自然的使用類似 [email protected]:myuser/awesome-project.git 的形式來訪問服務器版本庫。但是,宿主服務器上默認的 SSH 服務也是使用的 22 端口。因此默認會產生端口衝突。
修改宿主的 SSH 端口
修改宿主的 SSH 端口,使用非 22 端口。比如修改 SSHD 配置文件,/etc/ssh/sshd_config,將其中的 Port 22 改爲其它端口號,然後 service sshd restart。這種方式比較推薦,因爲管理用的宿主 SSH 端口改成別的其實更安全。
修改容器的 SSH 端口
修改容器的端口映射關係,比如將 -p 22:22 改爲 -p 2222:22,這樣 GitLab 的 SSH 服務端口將是 2222。這樣做會讓使用 GitLab 的 SSH 克隆、提交代碼有些障礙。這種情況要改變用戶使用 Git 的鏈接方式。
要從之前的:
git clone [email protected]:myuser/awesome-project.git
改爲明確使用 ssh:// 的 URL 方式。
git clone ssh://[email protected]:2222/myuser/awesome-project.git
三、部署成功
第一次登陸後會讓你設置密碼,如上說明搞得密碼長度需要8位。設置完之後登陸即可,如果出現一些錯誤提示,新頁面重新登陸即可登陸
進入頁面