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

docker部署中的Gitlab docker无法访问私有注册表,docker,continuous-integration,gitlab,continuous-deployment,continuous-delivery,Docker,Continuous Integration,Gitlab,Continuous Deployment,Continuous Delivery,我在docker主机上设置了一个私有gitlab注册表。在同一台主机上,我试图构建测试映像并将它们推送到所述注册表。 出于某种原因,这是行不通的。这是我的gitlab ci配置: 阶段: -构建测试 -分析 -测试 -构建部署 variables: MYSQL_RANDOM_ROOT_PASSWORD: 'true' MYSQL_USER: 'dev' MYSQL_PASSWORD: 'dev' MYSQL_DATABASE: 'debitor_management_test'

我在docker主机上设置了一个私有gitlab注册表。在同一台主机上,我试图构建测试映像并将它们推送到所述注册表。 出于某种原因,这是行不通的。这是我的gitlab ci配置:

阶段: -构建测试 -分析 -测试 -构建部署

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推送失败

$ 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

如何使其工作?

错误表明CI运行程序无法与
10.11.12.41
通信

每个GitLab存储库都有一个用于存储Docker映像的关联数据库。您最好使用它,而不是运行用于存储图像的自定义注册表。GitLab CI为您的CI作业提供了诸如
CI\u REGISTRY
CI\u REGISTRY\u IMAGE
CI\u REGISTRY\u USER
、和
CI\u REGISTRY\u PASSWORD
,以帮助您访问与存储库关联的注册表

如果您使用内置注册表,您可以像下面那样编写
build\u testing
作业

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