一、拉取镜像
docker pull gitlab/gitlab-ce:16.3.3-ce.0
二、启动容器
etc映射保存配置文件,log存储日志,data存放数据文件
docker run --name=gitlab \
--hostname=gitlab \
--volume=/mydata/gitlab/etc:/etc/gitlab \
--volume=/mydata/gitlab/log:/var/log/gitlab \
--volume=/mydata/gitlab/opt:/var/opt/gitlab \
--privileged \
-p 9922:22 \
--expose=443 \
-p 9980:80 \
--restart=always \
--runtime=runc \
--detach=true \
-t \
gitlab/gitlab-ce:16.3.3-ce.0 \
/assets/wrapper
三、gitlab相关配置
1、配置容器中的/etc/gitlab/gitlab.rb的配置文件
我们打开映射文件/mydata/gitlab/etc/gitlab.rb就可以修改,修改的内容如下:
external_url 'http://210.14.75.1:9980' 这里带端口号,免去修改/var/opt/gitlab/gitlab-rails/etc/gitlab.yml的麻烦。
gitlab_rails['gitlab_ssh_host'] = '210.14.75.1'
gitlab_rails['gitlab_shell_ssh_port'] = 9922
gitlab_rails['backup_keep_time'] = 604800
Tips:nginx[‘listen_port’]不设置, NGINX 将侦听 external_url 中指定的端口或隐式使用正确的端口(HTTP 为 80,HTTPS 为 443)。
backup_keep_time: 在允许删除备份之前保留备份的持续时间(以秒为单位),604800是7天
修改配置后重启容器
访问http://210.14.75.1:9980/users/sign_in 就可以打开页面了2./var/opt/gitlab/gitlab-rails/etc/gitlab.yml 文件配置
当时我已经创建了项目,在项目详情页复制了项目地址,一直下载不下来,发现详情页显示的没有带端口号,实际克隆的时候需要端口号的,如:http://210.14.75.1:9980/root/test_project.git
这个是要我们修改/var/opt/gitlab/gitlab-rails/etc/gitlab.yml的端口
修改映射后的文件/mydata/gitlab/opt/gitlab-rails/etc/gitlab.yml,修改为:
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 210.14.75.1
port: 9980
https: false
进入容器
docker exec -it gitlab /bin/bash
重启服务
gitlab-ctl restart
Tips:注意这里的命令是restart不是reconfigure(根据配置文件/etc/gitlab/gitlab.rb 重新生成配置),否则还会恢复原来的配置。只要执行了gitlab-ctl reconfigure,gitlab.yml中的端口配置就会被还原。所以如果你重启了容器之后,那这里的端口就又需要改一遍。
重启后退出容器
三、做定时备份
docker方式安装的执行备份的命令:
docker exec gitlab gitlab-backup create #gitlab是容器的名称
添加定时任务:
crontab -e 在文本中添加下面内容:
0 23 * * * docker exec gitlab gitlab-backup create
备份的目录路径在:
/mydata/gitlab/opt/backups
root@ubuntu:~# tree -L 1 /mydata/gitlab/opt/backups/
/mydata/gitlab/opt/backups/
└── 1710314270_2024_03_13_16.3.3_gitlab_backup.tar
四、还原备份
docker exec -it gitlab /bin/bash
cd /var/opt/gitlab/backups
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-ctl status
gitlab-rake gitlab:backup:restore BACKUP=1710314270_2024_03_13_16.3.3
Tips: 注意这里不要带_gitlab_backup.tar后缀,还原的时候版本需要是一致的
Tips:报错信息:Restoring PostgreSQL database gitlabhq_production … ERROR: must be owner of extension pg_trgm
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension pg_trgm
解决方法:
docker exec -it gitlab /bin/bash
# 修改以下配置文件,修改端口监听地址,默认监控localhost,* 代表all
$ vim /var/opt/gitlab/postgresql/data/postgresql.conf
listen_addresses = '*'
# 以下配置文件末尾新增以下两行
$ vim /var/opt/gitlab/postgresql/data/pg_hba.conf
local all all trust
host all all 127.0.0.1/32 trust
#重启gitlab服务
gitlab-ctl restart
$ su - gitlab-psql
$ /opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
ALTER ROLE
gitlabhq_production=# \q
$ exit