docker配置安装gitlab
进入root用户进行操作
安装docker
查看2020-11-09的 docker配置安装nextcloud
docker安装gitlab
拉取gitlabc-ce
1 | docker run -d -p 208:80 -p 230:22 --name gitlab --restart always -v /home/data/docker/gitlab-ce/config:/etc/gitlab -v /home/data/docker/gitlab-ce/logs:/var/log/gitlab -v /home/data/docker/gitlab-ce/data:/var/opt/gitlab gitlab/gitlab-ce:latest |
这三个是为了把docker里
gitlab
的一些文件夹映射到服务器上,方便https什么的,两边文件会共享-v /home/data/docker/gitlab-ce/config:/etc/gitlab
-v /home/data/docker/gitlab-ce/logs:/var/log/gitlab
-v /home/data/docker/gitlab-ce/data:/var/opt/gitlab
把docker里面的80和22映射到208和230,
这个是为了防止docker里面的80和22端口已经被占用。
注意服务器的208和230对外界要公开,把防火墙端口打开,
80是网页的端口,22是用来ssh访问git的,注意230不要是服务器本来的ssh端口
-p 208:80 -p 230:22
配置
进入docker里的gitlab
1 | docker exec -it gitlab /bin/bash |
编辑
1 | vi /etc/gitlab/gitlab.rb |
添加下面这三行就行
icpcs.lzu.edu.cn
是服务器的域名,208是刚才对外的网页端口,230是git的ssh免密访问
1 | external_url 'http://icpcs.lzu.edu.cn:208' |
如果要ssl的话,先自己certbot设置免费的CA证书,再添加这几个
/etc/gitlab/ssl/
这个是我把服务器上的CA证书复制到了刚才映射的外部文件夹/home/data/docker/gitlab-ce/config/ssl/
,但是docker里的gitlab访问就变成了/etc/gitlab/ssl/
1 | nginx['redirect_http_to_https'] = true |
更新
注意,运行很慢,慢慢等,还有就是每次这样更新配置以后,直接访问网页可能502之类的,不用急,等会,多刷新几次就好了,不过第一次刷新也不行,看最后
1 | gitlab-ctl reconfigure |
如果想看看配置有没有成功,这里看
1 | vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml |
闭坑
配置以后没反应,看这个,特坑
删除(
docker rm -f gitlab
)以后再来一次,把刚才的80改成外部的的208,其他不要改1
docker run -d -p 208:208 -p 230:22 --name gitlab --restart always -v /home/data/docker/gitlab-ce/config:/etc/gitlab -v /home/data/docker/gitlab-ce/logs:/var/log/gitlab -v /home/data/docker/gitlab-ce/data:/var/opt/gitlab gitlab/gitlab-ce:latest
记住,很慢,等会,可能好几分钟
1
docker ps -a
大概这样的时候就好了,注意
STATUS
,一开始是(healthy starting)
,等会,等它变成(healthy)
,然后多刷新几次网页就好了,记住很慢,等
字诀1
2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a8d27b67f0d7 gitlab/gitlab-ce:latest "/assets/wrapper" 12 hours ago Up 12 hours (healthy) 80/tcp, 443/tcp, 0.0.0.0:208->208/tcp, 0.0.0.0:230->22/tcp gitlab配置以后特别卡、或者内存占用高
运行时,默认使用服务器核数+1,如果你的服务器核数特别多,就会很卡,占用内存很多
因为我用了的服务器56个核心,所以我限制了一下
4
个,数据库和gitlab并发数都限制了8,16,以及数据库缓存也限制了。进入docker的gitlab
1
docker exec -it gitlab /bin/bash
编辑
1
vi /etc/gitlab/gitlab.rb
添加如下, > 注意,新版的gitlab,用的是puma,nuicorn已经默认false了
1
2
3
4
5
6## 减少内存,且防止卡
puma['worker_processes'] = 4
puma['per_worker_max_memory_mb'] = 2048
sidekiq['concurrency'] = 16
postgresql['shared_buffers'] = "256MB"
postgresql['max_worker_processes'] = 8刷新配置
1
gitlab-ctl reconfigure
重启gitlab
1
gitlab-ctl restart
等待几分钟以后刷新网页,否则502
备份
进入docker的gitlab
1
docker exec -it gitlab /bin/bash
编辑
1
vi /etc/gitlab/gitlab.rb
添加如下:3600*24*90天=7776000
1
gitlab_rails['backup_keep_time'] = 7776000
刷新配置
1
gitlab-ctl reconfigure
重启gitlab
1
gitlab-ctl restart
等待几分钟以后刷新网页,否则502
退出docker,在系统中添加crontab
1
crontab -e
1
2# 备份docker-gitlab
* 4 * * * docker exec gitlab gitlab-rake gitlab:backup:create备份位置,之前外挂
-v /home/data/docker/gitlab-ce/data:/var/opt/gitlab
所以在
/home/data/docker/gitlab-ce/data/backups
本文作者:yuhldr
本文地址: https://yuhldr.github.io/posts/21265.html
版权声明:转载请注明出处!