Я расширил образ Wordpress, добавив XDebug, PHPUnit, composer & phpcs.
Мой корень проекта выглядит так:
docker-wordpress
Dockerfile
docker-compose.yml
.env
docker-compose.yml:
version: '3.7'
services:
db:
image: mysql:5.7
volumes:
- ./docker-mysql/db_data:/var/lib/mysql
restart: always
ports:
- "3306:3306"
env_file: .env
wordpress:
depends_on:
- db
image: progonkpa/mywordpress
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- ./src:/var/www/html
env_file: .env
volumes:
db_data:
Эта конфигурация работает, но только потому, что я явно добавил объявление env_file, пока думал, что Docker автоматически подхватывает файл, если я следую правильным соглашениям: файл .env в корне.
Я действительно хочуудалите объявления env_file в docker-compose.yml, но затем я сталкиваюсь с некоторыми проблемами.
Журналы контейнеров MySQL:
database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD
Мне кажется, что при первом запуске, когда контейнеры инициализируются, мойпеременные, связанные с MySQL, не проходят.Файл .env содержит обычные переменные Wordpress и MySQL:
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress
MYSQL_ROOT_PASSWORD=wordpress
WORDPRESS_DB_HOST=db:3306
WORDPRESS_DB_USER=wordpress
WORDPRESS_DB_PASSWORD=wordpress
Так почему же мои переменные не достигают моего контейнера?