Intereting Posts
Потребление ресурсов внутри контейнера Docker Нужно ли перестраивать библиотеку python в контейнере Docker, если я изменяю один файл Подавать большой набор данных с докеров, nginx и django Выбор правильных сервисов и программных средств AWS Докер Nginx остановился: 1 # 1: хост не найден в восходящем потоке –cap-add в Google Container Engine Как сделать Docker COPY как non root? шеф-повар не применяет изменения рецепта Как я вижу состояние состояния контейнера для контейнеров из моего файла-файла-докере Извлечение контейнера Docker на загрузочный диск hdd Как получить показатели Docker с помощью удаленного API-интерфейса докеров не может получить монго из внутреннего докера Тестирование кластеров докеров локально Экспортировать порты докеров и доступ с помощью DNS для упрощения доступа к Ansible-Access Как запустить мой Go Webapp в докере на основе нуля, как пользователь никого?

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