Я пытаюсь передать каталог внутри контейнера, и в конечном итоге это можно будет автоматизировать. Однако я не вижу другой альтернативы, кроме физического редактирования Dockerfile и ручного ввода конкретного каталога, который нужно добавить.
Примечание: я пробовал смонтированные тома, однако это решение не помогает моей проблеме, так как я хочу в конечном итоге вызвать контейнер в каталоге, который в конечном итоге будет запускать скрипт в каталоге в контейнере, а не просто копировать локальный каталог. внутри контейнера.
Способ 1:
$ --build-arg project_directory=/path/to/dir
ARG project_directory
ADD $project_directory .
Мое неудачное решение предполагает, что я могу использовать значение аргумента как базовую строку, которую команда ADD может интерпретировать так же, как если бы я просто вручную вводил путь.


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
Похоже, вам может потребоваться mkdir -p целевой путь в вашем Dockerfile
Нет необходимости изменять Dockerfile, путь / существует, и вы сможете смонтировать /your/src/dir на /workspace.
при запуске
docker run -it -v path/to/dir/to/add:path/in/container {image}я получаю[Ernno 2] No such file or directory. Понимаю ли я ваш ответ, где, добавив это с помощью флага-v, мне не нужно ничего добавлять в файл докера? Он просто добавляет каталог хоста по указанному пути в контейнере?