docker搭建私有gitlab仓库
我用的是ubuntu18的环境
第一步 安装docker
国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
ps:如果没安装curl,要先安装curl
ubuntu换源链接:https://www.cnblogs.com/cnroadbridge/p/15194989.html
sudo apt install curl
执行完以上命令docker就安装成功了,可以在命令行输入docker进行测试
第二步 拉取镜像
我这里拉的是12.3.5版本的,因为最新版本的汉化包没有找到,考虑汉化的小伙伴可以照着这个操作来:
用原来的docker源拉去镜像速度极慢,建议docker换源:
vi /etc/docker/daemon.json 【这个文件默认是没有的】
复制以下内容,粘贴到打开的文件里:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ghcr.io",
"https://mirror.baidubce.com"
]
}
保存以后执行以下命令重启docker服务
service docker stop
service docker start
现在拉取镜像就很快了
docker pull gitlab/gitlab-ee:12.3.5-ee.0
第三步 docker run命令创建并启动容器
1.先创建映射文件夹
mkdir /opt/gitlab/logs
mkdir /opt/gitlab/data
mkdir /opt/gitlab/config
2.启动:
docker run -d -p 800:80 -p 220:22 --name gitlab --restart unless-stopped -v /opt/gitlab/config:/etc/gitlab -v /opt/gitlab/logs:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab -v /etc/localtime:/etc/localtime gitlab/gitlab-ee:12.3.5-ee.0
到这里就启动成功了,访问端口号是800,可以查看启动的容器哦
docker ps
开通防火墙端口
firewall-cmd --zone=public --permanent --add-port=800/tcp firewall-cmd --zone=public --permanent --add-port=4430/tcp firewall-cmd --zone=public --permanent --add-port=220/tcp firewall-cmd --reload
localhost:800 【虚拟机内部访问地址】

我这个是已经汉化过的,如果不需要汉化的小伙伴们到这里就可以使用了
默认的超级用户是root,密码第一次访问时会提醒你设置。
第四步 汉化部分
1.首先进入容器
docker exec -it 容器ID /bin/bash
2.查看gitlab的版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
3.使用wget获取具体的版本的汉化包
3.1 wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz
3.2 tar -zxf gitlab-v12.3.5-zh.tar.gz
如果内部无法下载,可以自己在外面下载好然上传到docker(此操作要exit退出docker容器执行)
docker cp gitlab-v12.3.5-zh.tar.gz a15a64191d59988a2f733e3d1dd241e0ac9d2a4a6b1eafe5a75ef1875293bb18:/home/mydownload
docker cp 【ubuntu文件路径】 【容器完整ID】:/【docker路径】
然后重新进入docker容器执行3.2
4.停掉gitlab服务
gitlab-ctl stop
5.备份原文件
cp -fr /opt/gitlab/embedded/service/gitlab-rails{,gao-`date +%Y%m%d`}
6.复制
cp -rf ./gitlab-v12.3.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/
复制的过程中出现这2句是没问题的
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/log’ with directory ‘./log’
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/tmp’ with directory ‘./tmp’
7.复制完成后,需要重新加载配置,并启动Gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
8.退出gitlab
exit
9.重启容器
docker restart 容器ID
访问中有可能出现502 那请重复1,7步 重新启动gitlab服务
第一次重启容器可能遇到重启失败【Ip映射】的问题:
执行以下操作:
iptables -t filter -F
iptables -t filter -X
10.完成
参考:
https://www.cnblogs.com/anliven/p/12070966.html#_label3
https://www.cnblogs.com/YorkQi/p/13658123.html
posted on 2022-04-12 13:26 python_知了知了 阅读(173) 评论(0) 收藏 举报
浙公网安备 33010602011771号