Мой docker-compose.yml:
version: '3'
services:
php-apache:
build:
context: ./php-apache
ports:
- 80:80
volumes:
- ./DocumentRoot:/var/www/html
links:
- 'db'
networks:
- default
db:
image: mariadb:10.1
volumes:
- ./db:/var/lib/mysql
- ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
ports:
- "3306:3306"
environment:
TZ: "Europe/London"
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
MYSQL_ROOT_PASSWORD: "rootpwd"
MYSQL_USER: 'testuser'
MYSQL_PASSWORD: 'testpassword'
MYSQL_DATABASE: 'testdb'
networks:
- default
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- 'db'
ports:
- 8000:80
environment:
MYSQL_USER: 'testuser'
MYSQL_PASSWORD: 'testpassword'
MYSQL_ROOT_PASSWORD: 'rootpwd'
PMA_HOST: db
PMA_PORT: 3306
Это основано на учебнике, который я нашел в Интернете.
Когда я его запускаю, я вижу, что контейнер PHP работает.Я вижу, что db и php-mydmin работают.Фактически я могу успешно получить доступ к БД из php-myadmin, используя учетные данные testuser / testpassword.
Но когда я пытаюсь получить доступ к БД из основного приложения PHP, используя
$conn = mysqli_connect("localhost","testuser",'testpassword','testdb');
, я получаю
Warning: mysqli_connect(): (HY000/2002): No such file or directory in /var/www/html/index.php on line 8
Это проблема с конфигурацией докера?Кто-нибудь может увидеть что-то пропавшее?