Файл My Docker (v.2) docker-compose.yml
содержит 2 изображения Ubuntu и 2 изображения MariaDB:
app:
container_name: app
image:php-apache-dev:ubuntu-16.04
links:
- mysql
depends_on:
- mysql
ports:
- '8443:443'
volumes:
- .:/app
environment:
docker: 'true'
PHP_DEBUGGER: 'xdebug'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '\.(.*)$$'
working_dir: '/app'
CONF_FILE: 'conf/local/develop.php'
test:
container_name: test
image:php-apache-dev:ubuntu-16.04
links:
- mysql_test
depends_on:
- mysql_test
ports:
- '8444:443'
volumes:
- .:/app
environment:
docker: 'true'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '\.(.*)$$'
working_dir: '/app'
CONF_FILE: 'conf/local/test.php'
mysql:
image: mariadb:latest
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'
mysql_test:
image: mariadb:latest
ports:
- '3307:3306'
environment:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev_test'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'
Один для разработки, другой для тестирования. Когда я получаю доступ к первому (на localhost:4443
), он работает. При доступе ко второму (на localhost:4444
) я могу просматривать веб-сайт, но он запрещает доступ пользователю:
Доступ пользователю dev для @ '%' к базе данных запрещен, база данных dev_test
Моя конфигурация для второго сайта настроена для доступа ко второму порту / пользователю MySQL:
'db_port' => env('DB_PORT', '3307'),
'db_name' => env('DB_NAME', 'dev_test'),
Я попытался ответить на этот вопрос , но безуспешно. Если я docker exec bash
в образ тестовой базы данных и запускаю SHOW GRANTS FOR dev
, он говорит:
GRANT ALL PRIVILEGES ON `dev_test`.* TO 'dev'@'%'