Ошибка при входе в реестр контейнеров gitlab в gitlab ci - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть следующее задание gitlab ci:

image: docker:stable

services:
  - docker:dind

stages:
  - debug

Debug registry login:
  stage: debug
  script:
    - docker login --username "$CI_REGISTRY_USER" --password "$CI_REGISTRY_PASSWORD" registry.exemple.com:port/

Но задание не выполняется со следующей ошибкой:

Error response from daemon: 
Get https://registry.exemple.com:port/v2/: net/http: 
request canceled while waiting for connection 
(Client.Timeout exceeded while awaiting headers)

"$ CI_REGISTRY_USER" и "$ CI_REGISTRY_PASSWORD" установлены правильно, Я попытался отобразить их, и отображаются правильные значения.

Реестр контейнеров, экземпляр gitlab и бегуны находятся на одном сервере ubuntu.

Если я пытаюсь войти в систему с помощьюкоманда в задании с моего компьютера или через сервер, который запускает задание, соединение успешно.

Конфигурация бегуна:

[[runners]]
  name = "Smooth"
  url = "https://git.exemple.fr"
  token = "a5e28f2c95cf5ff887edb535f80e37"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:stable"
    privileged = true
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]

1 Ответ

0 голосов
/ 22 сентября 2018

Сначала я подумал, что эта проблема связана с использованием облачного флага DNS, но на самом деле это потому, что у меня включен ufw (несложный брандмауэр) на сервере ubuntu, который обслуживает как экземпляр gitlab, так и реестр контейнеров gitlab в поддомене,Решение заключается в следующем:

sudo ufw allow [port]

Где [port] - порт, используемый реестром контейнера gitlab

Хотя я не понимаю, почему я мог docker login с моего ноутбукаили сервер без проблем с UFW, но не из задания CI

...