一化借、gitlab安裝
1.1 鏡像查詢
# 查詢gitlab有哪些鏡像
docker search gitlab
1.2 鏡像拉取(重點(diǎn))
鏡像的拉取會(huì)直接影響到后面我們漢化,所以鏡像的選擇尤為重要铐炫。可以看到主要有兩個(gè)鏡像垒手,比較方便我們利用的,第一個(gè)是官方社區(qū)版的鏡像科贬,第四個(gè)是其他大神愛好者漢化社區(qū)版的鏡像。后續(xù)兩種鏡像我都會(huì)進(jìn)行介紹榜掌。
1.2.1 官方社區(qū)版
官方社區(qū)版是純英語(yǔ)的,可以原汁原味地體驗(yàn)gitlab乘综。而且鏡像更新非常積極憎账,新加的功能都能夠體驗(yàn)到。
如果使用以下命令拉取卡辰,得到的就會(huì)是最新版的gitlab。
docker pull gitlab/gitlab-ce
但是最新版有個(gè)弊端就gitlab的中文比一定能馬上匹配九妈。如果想知道現(xiàn)在漢化匹配到什么版本了,可以查看gitlab中文社區(qū)于颖。
https://gitlab.com/xhang/gitlab/
筆者下載了12.3.5版本。
docker pull gitlab/gitlab-ce:12.3.5-ce.0
1.2.2 已漢化社區(qū)版
如果不想自己漢化的話森渐,可以選擇第四個(gè)是漢化社區(qū)版的鏡像冒晰。
但是這個(gè)鏡像目前已經(jīng)快2年沒有更新維護(hù)了同衣,gitlab版本也是上一個(gè)版本11.1壶运。
1.3 鏡像安裝
鏡像拉取下來(lái)后,使用docker images查看自己拉取的鏡像蒋情,然后使用docker run啟動(dòng)gitlab容器,建議啟動(dòng)命令寫成一個(gè)bash辕翰,防止忘記自己?jiǎn)?dòng)時(shí)的參數(shù)配置狈谊。
#!/bin/bash
IMAGE_NAME='gitlab/gitlab-ce'
CONTAINER_NAME='gitlab-ce-zh'
CONTAINER_ID=`docker run \
-d \
-p 7080:80 \
-p 7443:443 \
-p 7022:22 \
--restart always \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
--name ${CONTAINER_NAME} \
${IMAGE_NAME}`
# -d:后臺(tái)運(yùn)行
# -p:將容器內(nèi)部端口向外映射
# --name:命名容器名稱
# -v:將容器內(nèi)數(shù)據(jù)文件夾或者日志沟沙、配置等文件夾掛載到宿主機(jī)指定目錄
# 以上參數(shù)的具體用法壁榕,建議讀者可以自己動(dòng)手對(duì)比添加和不添加的區(qū)別矛紫,加深學(xué)習(xí)印象
命令運(yùn)行結(jié)束后牌里,會(huì)出現(xiàn)容器ID,可以通過(guò)docker ps查看容器是否成功啟動(dòng)贪染。然后訪問gitlab的地址,如果能打開gitlab主頁(yè)說(shuō)明已經(jīng)成功運(yùn)行催享。如果使用的是中文社區(qū)版的哟绊,打開之后就是中文的了。二攀涵、gitlab配置
2.1 訪問url配置
url的配置在/etc/gitlab/gitlab.rb里面洽沟,基本上gitlab的所有配置都可以在gitlab.rb這個(gè)文件里面完成配置以故。
# url配置樣例
external_url = 'http://127.0.0.1:80/gitlab'
2.2 管理員配置
首次登錄還需要配置管理員密碼裆操,管理員賬號(hào)為root,密碼在首次登錄的頁(yè)面上設(shè)置昆烁。
三缎岗、漢化
如果直接使用漢化的docker鏡像就不用進(jìn)行這一步了静尼。
3.1 獲取漢化包
訪問https://gitlab.com/xhang/gitlab/传泊,根據(jù)自己的gitlab獲取相應(yīng)版本的漢化包。也可以使用大stable版本拦盹。比如12.3.5可以使用gitlab-12-3-stable-zh
可以通過(guò)命令獲取
# 首先查看gitlab的版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 使用wget獲取具體的版本
wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz
# 或者用git獲取大版本
git clone -b gitlab-12-3-stable-zh https://gitlab.com/xhang/gitlab/
也可以直接下載
3.2 漢化
# 把漢化包復(fù)制到容器/opt/gitlab/embedded/service目錄下
docker cp [漢化包名稱] [容器ID]:/opt/gitlab/embedded/service
# 進(jìn)去容器里面繼續(xù)操作
docker exec -it [容器ID] bash
cd /opt/gitlab/embedded/service
# 把漢化包里面的所有文件復(fù)制到gitlab-rails里面
cp -rf [漢化包名稱]/* gitlab-rails
# 如果出現(xiàn)下面兩條語(yǔ)句是正常的
cp: cannot overwrite non-directory 'gitlab-rails/log' with directory 'gitlab-v12.3.5-zh/log'
cp: cannot overwrite non-directory 'gitlab-rails/tmp' with directory 'gitlab-v12.3.5-zh/tmp'
# 重新加載和啟動(dòng)gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
再次訪問主頁(yè)薪鹦,已經(jīng)漢化了惯豆。可以使用docker commit命令把已經(jīng)漢化的版本保存成鏡像奔害,方便下次遷移使用。
docker commit -a "[作者]" [容器ID] [新的鏡像名]:[tag]
后續(xù)
安裝好gitlab后發(fā)現(xiàn)無(wú)法推送代碼到服務(wù)器华临,端口為8081,從頁(yè)面上看git的拉取地址出現(xiàn)了錯(cuò)誤揭厚,字符串值為docker容器的id扶供。我們要將它修改為主機(jī)ip地址筛圆。
按上面的方式椿浓,gitlab容器運(yùn)行沒問題,但在gitlab上創(chuàng)建項(xiàng)目的時(shí)候提岔,生成項(xiàng)目的URL訪問地址是按容器的hostname來(lái)生成的笋敞,也就是容器的id碱蒙。作為gitlab服務(wù)器夯巷,我們需要一個(gè)固定的URL訪問地址,于是需要配置gitlab.rb(宿主機(jī)路徑:/home/gitlab/config/gitlab.rb)趁餐。
# gitlab.rb文件內(nèi)容默認(rèn)全是注釋
$ vim /home/gitlab/config/gitlab.rb
# 配置http協(xié)議所使用的訪問地址(不要加端口!)
external_url 'http://192.168.199.231'
# 配置ssh協(xié)議所使用的訪問地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run時(shí)22端口映射的222端口
:wq #保存配置文件并退出
# 重啟gitlab容器
$ docker restart gitlab