Файлы параметров Docker, передаваемые внутри

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

Примечание: я пробовал смонтированные тома, однако это решение не помогает моей проблеме, так как я хочу в конечном итоге вызвать контейнер в каталоге, который в конечном итоге будет запускать скрипт в каталоге в контейнере, а не просто копировать локальный каталог. внутри контейнера.

Способ 1:

$ --build-arg project_directory=/path/to/dir

ARG project_directory
ADD $project_directory . 

Мое неудачное решение предполагает, что я могу использовать значение аргумента как базовую строку, которую команда ADD может интерпретировать так же, как если бы я просто вручную вводил путь.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
187
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

not simply copying the local directory inside the container

Это именно то, что вы делаете сейчас, используя ADD $project_directory. Если вам нужно внести изменения из контейнера и отразить их на хосте, используйте:

docker run -v $host_dir:$container_dir image:tag

Приведенная выше команда запускает новый контейнер, и вы вполне можете запустить его с другими именами каталогов. Вы можете сделать это в цикле, используя конвейер Дженкинса, сценарий оболочки или что-то еще, что подходит для вашей среды разработки.

#!/bin/bash
container_dir=/workspace
for directory in /src /realsrc /kickasssrc
do
    docker run -v $directory:$container_dir image:tag
done

при запуске docker run -it -v path/to/dir/to/add:path/in/container {image} я получаю [Ernno 2] No such file or directory. Понимаю ли я ваш ответ, где, добавив это с помощью флага -v, мне не нужно ничего добавлять в файл докера? Он просто добавляет каталог хоста по указанному пути в контейнере?

Baily 03.05.2018 19:09

Похоже, вам может потребоваться mkdir -p целевой путь в вашем Dockerfile

bkconrad 03.05.2018 19:13

Нет необходимости изменять Dockerfile, путь / существует, и вы сможете смонтировать /your/src/dir на /workspace.

Timir 03.05.2018 19:15

Другие вопросы по теме