Выдвижение нескольких Docker изображений параллельно в конвейере Rancher - PullRequest
4 голосов
/ 17 января 2020

Из-за увеличения времени сборки нашего конвейера мы попытались улучшить его. Одним шагом, который занимал довольно много времени, был шаг docker images pu sh, который выполнялся последовательно. Поскольку этот шаг состоял из 12 изображений, он занимал 12-14 минут, и мы решили попытаться создать параллельные изображения sh (учитывая, что это займет время от 12-14 до 2-4 минут).

Попробовал несколько шагов на этапе публикации sh изображений, но это не удалось.

- name: Publish images
  steps:
    - publishImageConfig:
        dockerfilePath: ./frontend/deployment/Dockerfile
        buildContext: ./frontend
        tag: registry.remote.com/remote/frontend-${CICD_EXECUTION_ID}
        pushRemote: true
        registry: registry.remote.com
    - publishImageConfig:
        dockerfilePath: ./gateway/backend/src/Dockerfile
        buildContext: ./gateway/backend
        tag: registry.remote.com/remote/backend-${CICD_EXECUTION_ID}
        pushRemote: true
        registry: registry.remote.com
    [...]

Одно изображение выдвигается, но все остальные терпят неудачу с Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

У меня есть также безуспешно пытался увеличить --max-concurrent-uploads с /etc/docker/daemon.json.

1 Ответ

0 голосов
/ 21 января 2020

Docker /var/lib/docker может управляться только одним демоном. Если вы хотите опубликовать sh более одного, для этого есть обходной путь. Попробуйте что-то вроде этого:

stages:
- name: Publish images_1
  steps:
    - publishImageConfig:
        dockerfilePath: ./frontend/deployment/Dockerfile
        buildContext: ./frontend
        tag: registry.remote.com/remote/frontend-${CICD_EXECUTION_ID}
        pushRemote: true
        registry: registry.remote.com
- name: Publish images_2
  steps:
    - publishImageConfig:
        dockerfilePath: ./gateway/backend/src/Dockerfile
        buildContext: ./gateway/backend
        tag: registry.remote.com/remote/backend-${CICD_EXECUTION_ID}
        pushRemote: true
        registry: registry.remote.com
      env:
        PLUGIN_STORAGE_PATH: /var/lib/docker_2
    [...]

Эта ошибка уже была зарегистрирована в этой теме , вы можете найти больше информации там. Проблема должна была быть исправлена ​​в Rancher v2.2, но некоторые люди все еще испытывают это в v2.3. Тем не менее, обходной путь все еще действителен.

Я публикую этот ответ как вики сообщества, потому что это исправление не было моей первоначальной идеей.

Пожалуйста, дайте мне знать, если это помогло.

...