首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker部署中的Gitlab docker无法访问私有注册表

docker部署中的Gitlab docker无法访问私有注册表
EN

Stack Overflow用户
提问于 2018-07-19 17:08:17
回答 1查看 840关注 0票数 0

我在docker主机上设置了一个私有的gitlab注册表。在同一台主机上,我尝试构建测试映像并将其推送到所述注册表。由于某些原因,这不起作用。这是我的gitlab配置:

阶段:- build_testing -分析-测试- build_deployment

代码语言:javascript
复制
variables:
  MYSQL_RANDOM_ROOT_PASSWORD: 'true'
  MYSQL_USER: 'dev'
  MYSQL_PASSWORD: 'dev'
  MYSQL_DATABASE: 'debitor_management_test'

# image: 10.11.12.41/laravel:v1

# services:
# - name: mariadb:10.1
#   alias: mysql

image: docker:stable
services:
- name: docker:dind
  command: ["--insecure-registry=10.11.12.41:443"]


build_testing:
  stage: build_testing

  script:
  - docker build -t 10.11.12.41/debitor_management_testing .
  - ping -c 5 10.11.12.41
  - docker push 10.11.12.41/debitor_management_testing

ping命令正在工作,但docker push失败,错误为

代码语言:javascript
复制
$ docker push 10.11.12.41/debitor_management_testing
The push refers to repository [10.11.12.41/debitor_management_testing]
Get https://10.11.12.41/v2/: net/http: request canceled while waiting   for connection (Client.Timeout exceeded while awaiting headers)
ERROR: Job failed: exit code 1

我怎么才能让它工作呢?

EN

回答 1

Stack Overflow用户

发布于 2018-07-28 01:48:29

该错误表明CI运行器无法与10.11.12.41通信。

每个Docker存储库都有一个用于存储GitLab镜像的关联Container Registry。您最好使用它,而不是运行一个自定义注册表来存储图像。GitLab CI为您的CI作业提供predefined variables,例如CI_REGISTRYCI_REGISTRY_IMAGECI_REGISTRY_USERCI_REGISTRY_PASSWORD,以帮助您访问与存储库关联的注册表。

如果您使用内置注册表,则可以编写如下所示的build_testing作业。

代码语言:javascript
复制
build_testing:
  stage: build_testing

  script:
    - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY      
    - docker image build -tag $CI_REGISTRY_IMAGE .
    - docker image push $CI_REGISTRY_IMAGE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51418596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档