簡體   English   中英

如何使用 docker DIND 從 gitlab CI 中的私有注冊表中提取

[英]how to pull from a private registry in gitlab CI, with docker DIND

實際上,我正在使用帶有 docker executor 的 gitlab 運行器,並且我正在嘗試提取一些 docker 圖像來進行一些測試,並為了保留我的網絡連接,我創建了一個私有 docker 注冊表來“緩存”圖像。

因此,我的注冊表鏈接到我的 gitlab 運行器(在 config.toml https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnersdocker-section中配置)。

這項工作,我的形象可以詢問注冊表:

$ wget http://registry:5000/v2/_catalog

--2019-02-15 10:40:54--  http://registry:5000/v2/_catalog
Resolving registry... 172.17.0.3
Connecting to registry|172.17.0.3|:5000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20 [application/json]
Saving to: '_catalog'

     0K                                                       100% 1.17M=0s

2019-02-15 10:40:54 (1.17 MB/s) - '_catalog' saved [20/20]

但 DIND 服務不能:

pull registry:5000/arminc/clair-db:latest
Error response from daemon: Get http://registry:5000/v2/: dial tcp: lookup registry on 192.168.9.254:53: no such host

我用於此任務的 gitlab-ci conf

scan:image:
  stage: scans
  image: docker:git
  services:
    - name: docker:dind
      command: ["--insecure-registry=registry:5000"]
  variables:
    DOCKER_DRIVER: overlay2
  allow_failure: true
  script:
    - chmod 777 ./docker/scan.sh
    - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY
    - ./docker/scan.sh
  artifacts:
    paths: [gl-container-scanning-report.json]
  only:
    - master

可能,您可能需要在 DNS 服務器或 dockers 主機文件中添加一個 DNS 條目:

192.168.xx.xxx registry

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM