docker下gitlab安装、配置、汉化、代理、使用(完整版),边安装变更新,希望帮助读者解决问题。
# 查询gitlab有哪些镜像
docker search gitlab
镜像的拉取会直接影响到后面我们汉化,所以镜像的选择尤为重要。
可以看到主要有两个镜像,比较方便我们利用的,第一个是官方社区版的镜像,第四个是其他大神爱好者汉化社区版的镜像。后续两种镜像我都会进行介绍。
官方社区版是纯英语的,可以原汁原味地体验gitlab。而且镜像更新非常积极,新加的功能都能够体验到。
如果使用以下命令拉取,得到的就会是最新版的gitlab。
docker pull gitlab/gitlab-ce
但是最新版有个弊端就gitlab的中文比一定能马上匹配。如果想知道现在汉化匹配到什么版本了,可以查看gitlab中文社区。
https://gitlab.com/xhang/gitlab/
笔者下载了12.3.5版本。
docker pull gitlab/gitlab-ce:12.3.5-ce.0
如果不想自己汉化的话,可以选择第四个是汉化社区版的镜像。
但是这个镜像目前已经快2年没有更新维护了,gitlab版本也是上一个版本11.1。
镜像拉取下来后,使用docker images查看自己拉取的镜像,然后使用docker run启动gitlab容器,建议启动命令写成一个bash,防止忘记自己启动时的参数配置。
#!/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:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
# 以上参数的具体用法,建议读者可以自己动手对比添加和不添加的区别,加深学习印象
命令运行结束后,会出现容器ID,可以通过docker ps查看容器是否成功启动。然后访问gitlab的地址,如果能打开gitlab主页说明已经成功运行。如果使用的是中文社区版的,打开之后就是中文的了。
url的配置在/etc/gitlab/gitlab.rb里面,基本上gitlab的所有配置都可以在gitlab.rb这个文件里面完成配置。
# url配置样例
external_url = 'http://127.0.0.1:80/gitlab'
首次登录还需要配置管理员密码,管理员账号为root,密码在首次登录的页面上设置。
如果直接使用汉化的docker镜像就不用进行这一步了。
访问https://gitlab.com/xhang/gitlab/,根据自己的gitlab获取相应版本的汉化包。也可以使用大stable版本。比如12.3.5可以使用gitlab-12-3-stable-zh
可以通过命令获取
# 首先查看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/
也可以直接下载
# 把汉化包复制到容器/opt/gitlab/embedded/service目录下
docker cp [汉化包名称] [容器ID]:/opt/gitlab/embedded/service
# 进去容器里面继续操作
docker exec -it [容器ID] bash
cd /opt/gitlab/embedded/service
# 把汉化包里面的所有文件复制到gitlab-rails里面
cp -rf [汉化包名称]/* gitlab-rails
# 如果出现下面两条语句是正常的
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'
# 重新加载和启动gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
再次访问主页,已经汉化了。
可以使用docker commit命令把已经汉化的版本保存成镜像,方便下次迁移使用。
docker commit -a "[作者]" [容器ID] [新的镜像名]:[tag]