docker运维——安装gitlab

一、拉取镜像

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
Categories: docker与kubernetes