Eu tenho um arquivo docker-compose que tem um serviço que executa uma imagem de banco de dados postgres. As variáveis de ambiente do banco de dados (usuário, senha, db_name) estão em um arquivo env chamado db.env
:
DB_USERNAME=some_user
DB_PASSWORD=thepassword
DB_NAME=database
Como eu quero ter essas variáveis apenas em um arquivo, eu queria usar este backand/db.env
arquivo. O problema é que os nomes das variáveis de ambiente diferem daqueles que são usados pelo postgres (DB_USERNAME <=> POSTGRES_USER).
Este é o docker-compose.yml
arquivo:
services:
db:
image: postgres
ports:
- 5432:5432
env_file:
- backend/db.env
environment:
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_USER=${DB_TEST}
- POSTGRES_DB=${DB_DATABASE}
Tentei usar a mesma abordagem de usar o .env
arquivo padrão : Variáveis de ambiente no Compose .
env_file
estará disponível no contêiner .env
no próprio arquivo de composição, então você precisa usar .env
aqui
Gambiarra:
for i in $(cat < db.env); do export $i;done && docker-compose up -d
db.env:
DB_USERNAME=some_user
DB_PASSWORD=thepassword
DB_NAME=database
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras