Intereting Posts
Докер-контейнер EXIT IP на систему с несколькими псевдонимами и шлюзами ip, iptables iproute2 Не удалось подключиться к демону Docker в Windows 7 Docker-Compose v3 – статический ip Как автоматизировать HTTP AUTH PROXY POP UP в тесте nightwatch.js Как монтировать контейнерный каталог для записи в контейнере? Docker Windows отправляет контекст сборки, если более 80 МБ PM2 не начнет внутри докеров Как удалить тег <none> без удаления самого изображения докеры? Fedora 22: ОШИБКА: Нет модуля с именем «_ppmb» при создании докера docker-compose с войной через громкость терпит неудачу на цифровом океанском debian, но не другие debian distros (мой домашний ящик, рабочая коробка также) Как настроить docker compose для корректного отображения портов? MPI в докер-контейнере над сетью докеров Переменные RDS ENV в эластичном бобовом стебле user: Ток не реализован на linux / amd64 с помощью golang, используя докерную царапину Установите пользователя и пароль для rabbitmq на докер-контейнере

Строительство докеров с помощью 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