Eu tenho um .env
arquivo e um arquivo docker-compose. Eu faço referência ao arquivo env usando a env_file
propriedade no docker-compose. Em seguida, uso a interpolação de variável para definir outra variável de ambiente usando a variável definida no arquivo .env. Por algum motivo, o Docker não reconhece a variável definida no arquivo .env.
app.env :
MYSQL_DATABASE=wordpress
DB_USER=root
MYSQL_ROOT_PASSWORD=example
docker-compose.yml :
version: '3.1'
services:
wordpress:
container_name: 'wp'
build: .
restart: unless-stopped
links:
- mysql
env_file:
- app.env
environment:
- WORDPRESS_DB_USER=${DB_USER}
- WORDPRESS_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}
- WORDPRESS_DB_NAME=${MYSQL_DATABASE}
ports:
- 80:80
Parece que você confundiu o significado da opção de configuração env_file . Ele está passando várias variáveis de ambiente de um arquivo externo para os contêineres de um serviço. É o mesmo que environment
, mas são carregados do arquivo.
Se você quiser docker compose
reconhecer a variável definida no .env
arquivo, ela deve ser exatamente um arquivo .env .
Para conseguir o que deseja, você precisa:
1. Renomear app.env
para .env
:
mv app.env .env
2. Exclua a env_file
opção de configuração de docker-compose.yaml
:
version: '3.1'
services:
wordpress:
container_name: 'wp'
build: .
restart: unless-stopped
links:
- mysql
environment:
- WORDPRESS_DB_USER=${DB_USER}
- WORDPRESS_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}
- WORDPRESS_DB_NAME=${MYSQL_DATABASE}
ports:
- 80:80
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras