Установка относительных путей в Dockerfile при сборке с ansible - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь создать некоторые файлы Docker, используя ansible, но не ясно, что используется в качестве каталога сборки.

структура каталогов

  • build_images.yml
  • развернуть
    • app_files / requirements.txt
    • dockerfiles
      • app / Dockerfile

Я запускаю файл build_images.yml следующим образом (он выбирает правильный путь)

Файл build_images.yml

 ---                                                                                                                                                                                                                                       
 - hosts: localhost
   connection: local

   tasks:
     - name: Build container
        docker_image:
        name: app
        path: deploy/dockerfiles/app
        pull: no
        state: build

Однако мой Dockerfile содержит

FROM base_image:latest

COPY ./deploy/app_files/requirements.txt requirements.txt

Я пробовал несколько вариантов каталога, но он все время возвращается с "нет такого файла или каталога"

Какой каталог базовой сборки docker следует использовать для относительных путей в Dockerfile?

1 Ответ

0 голосов
/ 02 апреля 2019

Извлекает из документации docker_image

путь: Используйте с состоянием «присутствует» для построения изображения.Будет путь к каталогу, содержащему контекст и Dockerfile для построения образа.

dockerfile - добавлен в 2.0: Используйте с присутствующим состоянием, чтобы предоставить альтернативное имя для Dockerfile для использования присоздание изображения.

Затем я бы попытался

- name: Build container
  docker_image:
    name: app
    path: deploy
    dockerfile: dockerfiles/app/Dockerfile
    pull: no
    state: build

И в вашем Dockerfile:

FROM base_image:latest

COPY app_files/requirements.txt requirements.txt

Обратите внимание, что ваш исходный путь был неверным в любом случае (указываяdockerfiles вместо app_files).

...