如何启用GitLab容器注册表并在其中推送docker映像



在GitLab Community Edition 14.2.4中使用域方法启用容器注册表的确切步骤是什么,以及如何将docker映像推送到注册表?此外,我如何将GitLab CI与注册表集成?

只指定以下字符串,如"在其域下配置容器注册表"中所述;GitLab Community Edition 14.2.4

registry_external_url 'registry.gitlab.example.com'

这是一个自我回答的主题,我将指导您完成在GitLab Community Edition 14.2.4中启用容器注册表的步骤以及如何推送Docker映像。

步骤1:为了启用Container Registry,我使用了域方法(此处描述的现有域下的配置)。编辑/etc/gitlab/gitlab。并添加以下代码行:

registry_external_url 'https://registry.example.com'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "registry.example.com"
registry['enable'] = true
registry['registry_http_addr'] = "localhost:5000"
registry['log_directory'] = "/var/log/gitlab/registry"
registry['env_directory'] = "/opt/gitlab/etc/registry/env"
registry_nginx['enable'] = true
registry_nginx['listen_port'] = 443
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/registry.example.com/fullchain.pem"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/registry.example.com/privkey.pem"

添加完这些行后,执行gitlab-ctl reconfigure。请注意,我尝试了不同的方法,包括只指定registry_external_urlURL,但在使用上述设置之前都不起作用。在本文中,我跳过了安全认证步骤,这一步可以用不同的方式完成。我使用了预先生成并为注册表指定的Let's Encrypt证书。更多信息在这里

步骤2:一旦容器注册表被启用,你可以在GitLab中找到它,通过导航到Project ->包,注册中心→容器注册表。在空白页上,您将找到帮助命令,开始使用注册表。

步骤3:要将GitLab CI与Container Registry集成,请将以下代码添加到. GitLab - CI中。yml文件:

create-image:
stage: build
tags:
- shell
variables:
VER: 1.0-${CI_PIPELINE_ID}
ID: ${CI_COMMIT_SHORT_SHA}
GIT_SUBMODULE_STRATEGY: recursive
before_script:
- echo "Docker registry url is $CI_REGISTRY"
- echo "Docker registry username is $CI_REGISTRY_USER"
- echo "Docker registry repo is $CI_REGISTRY_IMAGE"
timeout: 12h
script:
- docker build -t ${CI_REGISTRY_IMAGE}:$VER ${CI_PROJECT_DIR}
upload-to-registry:
stage: deploy
when: manual
tags:
- shell
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker push ${CI_REGISTRY_IMAGE}:$VER

相关内容

  • 没有找到相关文章

最新更新