мускул. Конфиг для базы хочу взять из файла .env в папке с исходниками. В docker-compose есть такой конфиг:
version: '3'
volumes:
dbdata:
services:
db:
image: mysql:8.0.13
command: --default-authentication-plugin=mysql_native_password
restart: always
env_file:
- ./src/.env
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_ROOT_PASSWORD='supersecret'
ports:
- "3306:3306"
volumes:
- dbdata:/var/lib/mysql
вывод енвайромента:
cat ./src/.env| grep DB_
DB_HOST=db
DB_PORT=3306
DB_DATABASE=db_site
DB_USERNAME=user
DB_PASSWORD=secret
но при выполнении _docker-compose build db_ получаю
WARNING: The DB_DATABASE variable is not set. Defaulting to a blank string.
WARNING: The DB_USERNAME variable is not set. Defaulting to a blank string.
WARNING: The DB_PASSWORD variable is not set. Defaulting to a blank string.
db uses an image, skipping
Почему не видятся переменные?
он не видит только на этапе формирования конфига, var substitution для конфига работает только из .env . Но в контейнер ENV передаются, так как ты подключил файл. И да, env файл или env переменные в конфиге, дублировать не нужно
Обсуждают сегодня