docker - Gitlab-ce 和注册表 [docker-compose]
问题描述
我正在尝试通过注册表创建一个 gitlabdocker-compose.yml
我遵循了指南和指南,我尝试了很多,但仍然没有成功。
指南:
首先生成密钥
sudo mkdir -p certs
sudo openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
-x509 -days 365 -out certs/domain.crt
(note CN must be same as hostname)
然后创建docker-compose.yaml
并运行sudo docker-compose up
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'example.customsite.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://example.customsite.com/'
registry_external_url 'https://example.customsite.com:4443'
#gitlab_rails['registry_api_url'] = "https://example.customsite.com:4443"
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/example.customsite.com.crt"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/example.customsite.com.key"
gitlab_rails['lfs_enabled'] = true;
gitlab_rails['registry_path'] = "/etc/registry"
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '8080:80'
- '443:443'
- '2222:22'
volumes:
- ./certs:/etc/gitlab/ssl/
- ./srv/gitlab/config:/etc/gitlab
- ./srv/gitlab/logs:/var/log/gitlab
- ./srv/gitlab/data:/var/opt/gitlab
- ./registry:/etc/registry
registry:
image: registry:2
restart: always
environment:
REGISTRY_HTTP_ADDR: 0.0.0.0:443
REGISTRY_HTTP_TLS_CERTIFICATE: '/certs/example.customsite.com.crt'
REGISTRY_HTTP_TLS_KEY: '/certs/example.customsite.com.key'
STORAGE_PATH: '/registry'
ports:
- 443:443
volumes:
- './certs:/certs'
- './registry:/registry'
问题
所以我可以使用注册表(推/拉),检查 url https://example.customsite.com:4443/v2/_catalog图像是否存在,但 gitlab 站点上的存储库中没有。
但是如果我输入
gitlab_rails['registry_api_url'] = "https://example.customsite.com:4443"
docker gitlab
environment
-compose,当我尝试从存储库和日志中访问注册表时,我会收到错误代码 500
gitlab_1 | Started GET "/root/test/container_registry" for *.*.*.* at 2018-12-12 13:37:40 +0000
gitlab_1 | Processing by Projects::Registry::RepositoriesController#index as HTML
gitlab_1 | Parameters: {"namespace_id"=>"root", "project_id"=>"test"}
gitlab_1 | Completed 500 Internal Server Error in 288ms (ActiveRecord: 5.5ms)
gitlab_1 |
gitlab_1 | Faraday::ConnectionFailed (Failed to open TCP connection to registry:4443 (Connection refused - connect(2) for "registry" port 4443)):
gitlab_1 | lib/container_registry/client.rb:21:in `repository_tags'
gitlab_1 | app/models/container_repository.rb:38:in `manifest'
gitlab_1 | app/models/container_repository.rb:43:in `tags'
gitlab_1 | app/models/container_repository.rb:55:in `has_tags?'
gitlab_1 | lib/gitlab/metrics/instrumentation.rb:159:in `block in has_tags?'
gitlab_1 | lib/gitlab/metrics/method_call.rb:34:in `measure'
gitlab_1 | lib/gitlab/metrics/instrumentation.rb:159:in `has_tags?'
gitlab_1 | app/controllers/projects/registry/repositories_controller.rb:46:in `block (2 levels) in ensure_root_container_repository!'
gitlab_1 | app/controllers/projects/registry/repositories_controller.rb:45:in `tap'
gitlab_1 | app/controllers/projects/registry/repositories_controller.rb:45:in `block in ensure_root_container_repository!'
gitlab_1 | app/controllers/projects/registry/repositories_controller.rb:42:in `tap'
gitlab_1 | app/controllers/projects/registry/repositories_controller.rb:42:in `ensure_root_container_repository!'
gitlab_1 | lib/gitlab/i18n.rb:55:in `with_locale'
gitlab_1 | lib/gitlab/i18n.rb:61:in `with_user_locale'
gitlab_1 | app/controllers/application_controller.rb:419:in `set_locale'
gitlab_1 | lib/gitlab/middleware/multipart.rb:101:in `call'
gitlab_1 | lib/gitlab/request_profiler/middleware.rb:14:in `call'
gitlab_1 | lib/gitlab/middleware/go.rb:17:in `call'
gitlab_1 | lib/gitlab/etag_caching/middleware.rb:11:in `call'
gitlab_1 | lib/gitlab/middleware/rails_queue_duration.rb:22:in `call'
gitlab_1 | lib/gitlab/metrics/rack_middleware.rb:15:in `block in call'
gitlab_1 | lib/gitlab/metrics/transaction.rb:53:in `run'
gitlab_1 | lib/gitlab/metrics/rack_middleware.rb:15:in `call'
gitlab_1 | lib/gitlab/middleware/read_only/controller.rb:38:in `call'
gitlab_1 | lib/gitlab/middleware/read_only.rb:16:in `call'
gitlab_1 | lib/gitlab/middleware/basic_health_check.rb:25:in `call'
gitlab_1 | lib/gitlab/request_context.rb:20:in `call'
gitlab_1 | lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'
gitlab_1 | lib/gitlab/middleware/release_env.rb:10:in `call'
解决方案
推荐阅读
- c# - 如何对列表中的 2 个不同规则进行排序
- symfony - 创建捆绑包时使用实体的良好做法
- logging - 阻止 WLP 将 System.out 写入 messages.log
- c++ - 在基类和派生类之间正确设置函数的返回
- excel - 访问共享邮箱收件箱中文件夹子文件夹的详细信息
- c# - 如何在我的业务逻辑层管理单一性?
- flutter - 使用地理定位器的当前位置
- java - 如何测试此存储库方法 makeAddBuildingApiCall 和 addBuildingDetails
- javascript - 如何循环实现json数据?(html & javascript)
- java - 避免一段时间(stopCondition)消耗CPU