繁体   English   中英

GitLab 综合 Docker 引导循环(以前工作)修复?

[英]GitLab Omnibus Docker boot-loop (previously working) fix?

因此,在最终设置好 GitLab 并使用了一天之后,我决定尝试启用 GitLab 注册表。 然而,在运行gitlab-ctl reconfigure之后,系统进入了一个引导循环(每次引导持续 10-15 秒)。

现在我一直在到处寻找解决这个问题的方法,结束引导循环或获取详细说明容器为何不断重启的日志。

我在 Digital Ocean droplet VPS 上运行 GitLab(最新版本)的 Omnibus Docker 图像。 GitLab 配置为不使用 https,因为我使用反向代理 (apache) 进行连接(此连接通过 https)。

反向代理配置浏览器 => example.com:443 (https) => localhost:8888 (http)

Docker output

c13e26a20f7d        gitlab/gitlab-ce:latest       "/assets/wrapper"        24 hours ago        Up 2 seconds (health: starting)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4444->443/tcp   gitlab

我尝试过的(没有成功):

  • 恢复以前工作配置的快照。
  • 使用 gitlab-ctl 命令恢复文件权限。
  • 在可用的日志文件中查找任何类型的提示(仅访问日志。

任何建议和/或我将如何解决此问题 go将不胜感激!

修复 :关闭Docker容器,检查重新配置日志 (位于安装文件夹内的logs / reconfiguration目录中),并根据日志中明显的错误对配置文件进行调整。

修复启动循环(逐步)

注意 :如果您不是以root身份运行,我建议暂时以root身份运行(使用sudo su ),以避免权限被拒绝的错误。

手动停止Docker容器后,我可以查看位于/srv/gitlab/logs/reconfigure的完整日志(带有最新时间戳)

摘自最新的重新配置日志:

[2018-05-19T00:24:50+00:00] INFO: *** Chef 13.6.4 ***
[2018-05-19T00:24:50+00:00] INFO: Platform: x86_64-linux
[2018-05-19T00:24:50+00:00] INFO: Chef-client pid: 25
[2018-05-19T00:24:50+00:00] INFO: The plugin path /etc/chef/ohai/plugins does not exist. Skipping...
[2018-05-19T00:24:52+00:00] WARN: Plugin Network: unable to detect ipaddress
[2018-05-19T00:24:52+00:00] INFO: Setting the run_list to ["recipe[gitlab]"] from CLI options
[2018-05-19T00:24:52+00:00] INFO: Run List is [recipe[gitlab]]
[2018-05-19T00:24:52+00:00] INFO: Run List expands to [gitlab]
[2018-05-19T00:24:52+00:00] INFO: Starting Chef Run for [REDACTED]
[2018-05-19T00:24:52+00:00] INFO: Running start handlers
[2018-05-19T00:24:52+00:00] INFO: Start handlers complete.
[2018-05-19T00:24:54+00:00] INFO: Loading cookbooks [gitlab@0.0.1, package@0.1.0, postgresql@0.1.0, registry@0.1.0, mattermost@0.1.0, consul@0.0.0, gitaly@0.1.0, letsencrypt@0.1.0, nginx@0.1.0, runit@0.14.2, acme@3.1.0, crond@0.1.0, compat_resource@12.19.0]
[2018-05-19T00:24:56+00:00] WARN: Runtime directory '/run' is not a tmpfs.

错误消息是一个好的开始,但不会揭示潜在的问题...

[2018-05-19T00:24:56+00:00] ERROR: Running exception handlers
[2018-05-19T00:24:56+00:00] ERROR: Exception handlers complete

现在日志的最后三行显示了问题所在

[2018-05-19T00:24:56+00:00] FATAL: Stacktrace dumped to /opt/gitlab/embedded/cookbooks/cache/chef-stacktrace.out
[2018-05-19T00:24:56+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-05-19T00:24:56+00:00] FATAL: RuntimeError: Unsupported GitLab Registry external URL path: /gitlab/registry

现在,在看到最后一行之后,我看到我的配置无效,并且是致命问题的原因

为了解决该问题,我在Docker容器处于未引导状态时编辑了配置(配置文件位于/srv/gitlab/config/gitlab.rb )。 修复配置后,我的情况是注释掉所有的GitLab Registry配置选项(因为我决定暂时等待测试此功能)。

差异配置

################################################################################
## Container Registry settings
##! Docs: https://docs.gitlab.com/ce/administration/container_registry.html
################################################################################

- registry_external_url 'http://[REDACTED]:4567/gitlab/registry'
+ # registry_external_url 'http://[REDACTED]:4567/gitlab/registry'

### Settings used by GitLab application
- gitlab_rails['registry_enabled'] = true
+ # gitlab_rails['registry_enabled'] = true
- gitlab_rails['registry_host'] = "[REDACTED]"
+ # gitlab_rails['registry_host'] = "[REDACTED]"
- gitlab_rails['registry_port'] = "4567"
+ # gitlab_rails['registry_port'] = "4567"
- gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
+ # gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

我运行以下命令来引导容器并应用新配置。

docker start gitlab
sudo docker exec gitlab gitlab-ctl reconfigure

立即发出有希望的结果,因为我发出命令后容器没有立即重新启动。

Starting Chef Client, version 13.6.4
resolving cookbooks for run list: ["gitlab"]
Synchronizing Cookbooks:
  - gitlab (0.0.1)
  - package (0.1.0)
  - registry (0.1.0)
  - postgresql (0.1.0)
  - letsencrypt (0.1.0)
  - mattermost (0.1.0)
  - runit (0.14.2)
  - nginx (0.1.0)
  - gitaly (0.1.0)
  - consul (0.0.0)
  - acme (3.1.0)
  - crond (0.1.0)
  - compat_resource (12.19.0)
Installing Cookbook Gems:
...

而已! 现在一切正常。 原来是用户错误是问题的原因。

我有同样的问题。 我检查了最新的日志:

sudo ls -l /srv/gitlab/logs/reconfigure/

在文件中我在运行时发现错误 GitLab

sudo more /srv/gitlab/logs/reconfigure/1648382802.log

文件内容

[2022-03-27T12:08:10+00:00] 信息:文件[/var/opt/gitlab/nginx/www/.well-known/acme-challenge/M1tQ-4PY-MUmYyTdrsvgZTbPg1KGg-j4rjZCkPG0Bqk] 所有者更改为0 [2022-03-27T12:08:10+00:00] 信息:文件 [/var/opt/gitlab/nginx/www/.well-known/acme-challenge/M1tQ-4PY-MUmYyTdrsvgZTbPg1KGg-j4rjZCkPG0Bqk] 组已更改到 0 [2022-03-27T12:08:10+00:00] 信息:文件 [/var/opt/gitlab/nginx/www/.well-known/acme-challenge/M1tQ-4PY-MUmYyTdrsvgZTbPg1KGg-j4rjZCkPG0Bqk] 模式更改为 644 [2022-03-27T12:08:12+00:00] 信息:文件 [/var/opt/gitlab/nginx/www/.well-known/acme-challenge/M1tQ-4PY-MUmYyTdrsvgZTbPg1KGg-j4rjZCkPG0Bqk]删除文件在/var/opt/gitla b/nginx/www/.well-known/acme-challenge/M1tQ-4PY-MUmYyTdrsvgZTbPg1KGg-j4rjZCkPG0Bqk [2022-03-27T12:08:12+00:00] 信息:正在排队重新引发异常之前的延迟通知 [2022-03-27T12:08:12+00:00] 信息:在重新引发异常之前运行排队的延迟通知 [2022-03-27T12:08:12+00:00] 信息:在 re-r 之前运行排队的延迟通知 aising exception [2022-03-27T12:08:12+00:00] INFO: templatesymlink[Create a gitlab.yml and create a symlink to Rails root] 发送要执行的运行操作[清除 gitlab-rails 缓存](延迟) [2022-03-27T12:08:56+00:00] 信息:执行[清除 gitlab-rails 缓存] 成功运行 [2022-03-27T12:08:56+00:00] 信息:env_dir[/opt/ gitlab/etc/gitlab-workhorse/env] 向 runit_service[gitlab-workhorse] 发送重启操作(延迟)[2022-03-27T12:08:56+00:00] INFO: env_dir[/opt/gitlab/etc/registry /env] 向 runit_service[registry] 发送重启操作(延迟)[2022-03-27T12:08:57+00:00] 错误:运行异常处理程序 [2022-03-27T12:08:57+00:00] 错误:异常处理程序完成 [2022-03-27T12:08:57+00:00] 致命:Stacktrace 转储到 /opt/gitlab/embedded/cookbooks/cache/chef-stacktrace.out [2022-03-27T12:08:57 +00:00] 致命:如果您提交错误报告,请提供 stacktrace.out 文件的内容 [2022-03-27T12:08:57+00:00]致命:运行时错误:letsencrypt_certificate[ex ample.com]( letsencrypt ::http_authorization 第 6 行)出现错误:RuntimeError: acm e_certificate[staging](/opt/gitlab/embedded/cookbooks/cache/cookbooks/letsencrypt/resources/certificate.rb 第 41 行)出现错误:RuntimeError:ruby_block [为 example.com 创建证书](/opt/gitlab/embedded/cookbooks/cache/cookbooks/acme/resources/certificate.rb 第 108 行)出现错误:RuntimeError:[gitlab.example.com]验证失败,无法申请证书,错误:[{url: https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/2021548548/xDXgmw, status: invalid, e rror: {"type "=>"urn:ietf:params:acme:error:unauthorized", "detail"=>"无效响应来自 http://gitlab.example.com/.well-known/acme-challenge/M1tQ-4PY-MUmYyTdrsvgZ TbPg1KGg-j4rjZCkPG0Bqk [IP]: 404", "status"=>403}} ]

就我而言,这是 LetsEncrypt 中的错误配置。 我更正了 GitLab 配置文件:

sudo vi /srv/gitlab/config/gitlab.rb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM