简体   繁体   中英

Gitlab docker in docker deployment unable to access private registry

I set up a private gitlab registry on a docker host. On the same host I'm trying to build test images and push them to said registry. For some reason, this is not working. Here is my gitlab ci config:

stages: - build_testing - analytics - testing - build_deployment

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

The ping command is working, but the docker push fails with

$ 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

How can I get this to work?

The error suggests that the CI runner cannot communicate with 10.11.12.41 .

Every GitLab repository has an associated Container Registry for storing Docker images. You might better off using that rather than running a custom registry for storing images. GitLab CI provides predefined variables to your CI jobs such as CI_REGISTRY , CI_REGISTRY_IMAGE , CI_REGISTRY_USER , and CI_REGISTRY_PASSWORD to help you access the registry associated with your repository.

If you use the built-in registry, you can write your build_testing job like the following.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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