Самый простой способ, переслать отдельные переменные:
docker run ... --env animals="turtle, monkey, goose" --env FILE_NAME="file_to_run.zip"
Переслать несколько переменных, используя файл:
Или, если вам нужно получить все переменные окружения извне, вы можете сначала сделать что-то вроде этого:
printenv | grep -E 'animals|FILE_NAME' > my-env
grep
потому что Docker не любит некоторые переменные, например с пробелами в них, которые вы могли бы иметь в вашей реальной среде.
Затем используйте этот файл в команде Docker:
docker run ... --env-file ./my-env
Последнее также полезно, если вы хотите избежать отправки переменных среды в журналы (например, для конфиденциальных переменных). Я использую этот подход в конвейере CI / CD, который запускает некоторые сценарии.
Использование переменных внутри Docker :
При любом подходе переменные среды фактически становятся доступными для использования сценариями, выполняющимися внутри контейнера.
@ Ответ BMitch содержит более полную информацию о том, как этого добиться в вашем случае, когда у вас есть связанная логика как при сборке, так и при выполнении.
Ссылка
См. Документы здесь .