#python-3.x #docker #docker-compose #environment-variables #dockerfile
#python-3.x #docker #docker-compose #переменные среды #dockerfile
Вопрос:
Я хочу использовать некоторые переменные env в своем приложении, которое выполняется в контейнере docker. Как я могу получить эти переменные среды в своем коде?
Если я использую dockerfile или docker-compose yaml, то как я могу экспортировать его для чтения значений из ОС, на которой он запускается в конечном итоге, и как его можно прочитать в коде?
Так, например, если я запускаю свой docker в экземплярах AWS, мне нужны ключи AWS из экземпляра, которые будут использоваться в моем контейнерном приложении.
Комментарии:
1. создайте
.env
файл и получите доступ к нужным переменным в docker-compose.yaml?2. Обратите внимание, что если вы используете один из стандартных пакетов SDK AWS, и к вашему экземпляру привязана роль IAM, вы можете получить учетные данные через службу метаданных EC2 без установки каких-либо переменных среды (даже если вы работаете в контейнере).
Ответ №1:
Для docker-compose:
Создайте .env
файл в том же каталоге, что и docker-compose.yml
Например, для файла .env с содержимым:
DOCKER_IMAGE_NAME=docker_image_here
POSTGRES_PASSWORD=POSTGRES_PASSWORD_HERE
Затем вы можете получить доступ к переменным внутри файла docker-compose.yml:
service-name:
web:
image: ${IMAGE_NAME}
environment:
postgres_password: "${POSTGRES_PASSWORD}"