GitLab Linux Docker部署

部署

1、docker pull registry.gitlab.cn/omnibus/gitlab-jh:17.11.7

2、export GITLAB_HOME=/...

3、docker run -itd --publish 14901:80 --publish 14902:443 --publish 14903:22 --name gitlab-container --restart always -v $GITLAB_HOME/config:/etc/gitlab -v $GITLAB_HOME/logs:/var/log/gitlab -v $GITLAB_HOME/data:/var/opt/gitlab --shm-size 1024m --log-driver=journald registry.gitlab.cn/omnibus/gitlab-jh:17.11.7

4、修改容器内/etc/gitlab/gitlab.rb

external_url 'http://{ip}:14901'

gitlab_rails['gitlab_ssh_host'] = '{ip}'

上述如果绑定了域名xxx.com,则

external_url 'http://gitlab.xxx.com:14901'

gitlab_rails['gitlab_ssh_host'] = 'gitlab.xxx.com'

 

gitlab_rails['gitlab_shell_ssh_port'] = 14903

gitlab_rails['time_zone'] = 'Asia/Shanghai'

 

nginx['listen_port'] = 80

nginx['listen_https'] = false

上述两条命令需要添加原因:external_url为http协议时默认80端口;为https时默认为443端口。但是如果包含端口号,则会优先以解析到的端口号为默认端口,上述命令包含14901端口,则80会被替换为14901。因为容器的端口映射为映射到容器内的80端口,所以仍然需要添加nginx['listen_port'] = 80以改变默认的14901端口配置。

5、运行gitlab-ctl reconfigure

6、修改容器内/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml配置文件中

gitlab:

  port: 14901

执行gitlab-ctl restart

7、第一次获取root密码(用户名:root):grep 'Password:' /etc/gitlab/initial_root_password 或者 cat /etc/gitlab/initial_root_password

内存占用过高

修改容器内/etc/gitlab/gitlab.rb的配置(不仅限以下配置,可以视情况修改更多配置)

unicorn['worker_processes'] = 2

sidekiq['concurrency'] = 4

postgresql['shared_buffers'] = "64MB"

postgresql['max_worker_processes'] = 2

备份与迁移:

1、进入容器,执行gitlab-rake gitlab:backup:create,备份文件会在/var/opt/gitlab/backups下,备份该文件,比如文件名为xxx_2025_11_10_17.11.7_gitlab_backup.tar

2、备份/etc/gitlab/gitlab-secrets.json和/etc/gitlab/gitlab.rb

3、在启动完成新的容器(并且备份文件、secrets.json已经复制到相应目录下,gitlab.rb已经完成相应修改)后,执行

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-ctl status

chown -R 777 /var/opt/gitlab/backups 或者改权限为git:git

gitlab-rake gitlab:backup:restore BACKUP=xxx_2025_11_10_17.11.7

gitlab-ctl restart

gitlab-rake gitlab:check SANITIZE=true

注意:新的GitLab版本号需要和老版本一致,gitlab升级单独进行!

邮件配置:

修改容器内/etc/gitlab/gitlab.rb的配置

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.qq.com"

gitlab_rails['smtp_port'] = 465 # 通常对于SMTPS使用465端口,对于STARTTLS使用587端

gitlab_rails['smtp_user_name'] = "your_email@qq.com" # 你的邮箱地址

gitlab_rails['smtp_password'] = "your_smtp_authorization_code" # 你的SMTP授权码

gitlab_rails['smtp_domain'] = "qq.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true # 如果使用STARTTLS,则设置为true

gitlab_rails['smtp_tls'] = true # 如果使用SMTPS(端口465),则设置为true

gitlab_rails['gitlab_email_from'] = 'your_email@qq.com' # 发件人邮箱地址

gitlab_rails['gitlab_email_display_name'] = 'GitLab CE' # 发件人显示名称

 

gitlab_rails['signup_enabled'] = true(未找到此配置)

gitlab-ctl restart或者重启容器

注意:根据邮箱服务提供商和具体需求,上述参数可能需要进行相应的调整。

posted @ 2025-11-10 14:36  杨逸华  阅读(12)  评论(0)    收藏  举报