Intereting Posts
Docker Cluster потерял статус лидера после перезагрузки Докер: отправка журналов на localhost не работает, но 0.0.0.0 действительно работает, почему? Докер ADD против VOLUME Как контейнер InfluxDB с Docker? Собирать не толкание данных в infuxdb Проксирование нескольких URL-адресов с помощью wiremock-docker Кубернетес – контейнерная связь внутри стручка с использованием имен вместо «localhost»? предыдущий драйвер хранилища «devicemapper» не выполнен: статус выхода 1 в докере Могу ли я запустить несколько сервисов с помощью команды docker-compose в одной команде? Есть ли разница между «докер ps» и «докер-контейнером»? Apache / php возвращает полное описание ошибки ошибки php Автоматическая установка Docker и рисования с помощью python или bash Как смонтировать существующий каталог .ssh пользователя в контейнер Docker? Докер: добавление файла из родительского каталога Какая потребность в Docker Daemon?

Строительство докеров с помощью Ansible docker_image

Я пытаюсь создать кучу докеров на машине, используя модуль docker_image от Ansible.

Я создаю 1 "базовое" изображение докеры, которое используется как изображение FROM во всех последующих изображениях докеров. Это работает при выдаче команд сборки вручную:

sudo docker build -t base . sudo docker build -t postgres . 

Но когда я пытаюсь сделать то же самое с модулем Ansible, второе изображение (и все последующие изображения, которые используют «базовое» изображение) терпят неудачу со следующей ошибкой:

 TASK: [Docker | Build postgres] ************************************ failed: [192.168.1.120] => {"changed": true, "failed": true, "image_id": null} msg: Error: Error: image base:latest not found Log:Step 0 : FROM base FATAL: all hosts have already failed -- aborting 

Записи в моем Playbook:

  - name: Docker | Build base docker_image: path="/home/xx/data/dockers/base/" name="base" state=present - name: Docker | Build postgres docker_image: path="/home/xx/data/dockers/postgresql/" name="postgres" state=present 

Когда он терпит неудачу, «базовое» изображение существует на машине, и я могу проверить его, проверив docker images . Последующие изображения (в этом случае postgres) также строятся без сбоев при выполнении ручной сборки.

Соответствующие выдержки из Dockerfiles:

Базовый файл докеров:

 FROM ubuntu MAINTAINER me RUN apt-get update RUN apt-get install -y \ software-properties-common \ wget \ git \ unzip \ nano \ vim-tiny CMD bash 

Postgres Dockerfile:

 FROM base MAINTAINER me RUN groupadd -r postgres && useradd -r -g postgres postgres ... 

Поэтому Ansible пытается создать образ, используя другое изображение в качестве базового изображения. Я уверен, что проблема не в Dockerfiles, потому что я могу создавать изображения вручную. Я просто пытаюсь автоматизировать сборку с Ansible, и это дает мне проблему.

Любой совет?

    Проблема здесь в том, что модуль docker-py недавно docker-py которая сначала проверит хаб для изображения. docker-py не использует инструменты командной строки, он использует свою собственную реализацию apk докеры и делает все по-своему.

    Я бы рекомендовал вам создать частный хаб. Вам понадобится день, чтобы привыкнуть к этой идее, и приступите к префиксному изображению контейнера. Нажимайте, когда вы создаете свои изображения. Потяните, когда вы начнете их. Отделите эти проблемы в своих книгах. В некоторых случаях забудьте использовать модули ansible docker и просто зайдите с помощью docker cli через модуль оболочки ansible. Вот хорошая статья о незаметном и докере. http://opensolitude.com/2015/05/26/building-docker-images-with-ansible.html