В основном я хочу запустить стек LAMP в контейнере Docker.
Пока все службы работают, но как только я пытаюсь подключиться к mysql из скрипта PHP, я получаю следующую ошибку:
Warning: mysqli::__construct(): (HY000/2002): Connection refused
докер-compose.yml
version: '3.2'
services:
php:
build: ./php/
networks:
- backend
volumes:
- './public/:/var/www/html'
apache:
build: ./apache/
depends_on:
- php
- mysql
networks:
- frontend
- backend
ports:
- '8080:80'
volumes:
- './public/:/var/www/html'
mysql:
image: 'mysql:5.6.40'
ports:
- "3306:3306"
networks:
- backend
environment:
- MYSQL_DATABASES=test
- MYSQL_ROOT_PASSWORD=root
- MYSQL_HOST=127.0.0.1
- MYSQL_PORT=3306
- MYSQL_USER=user
- MYSQL_PASSWORD=password
- MYSQL_MY_DATABASE=test
networks:
frontend: null
backend: null
Dockerfile для PHP:
FROM php:7.2.7-fpm-alpine3.7
RUN apk update; \
apk upgrade;
RUN docker-php-ext-install mysqli
Я проверил это с помощью следующего подхода:
docker exec -ti <mysql_docker> bash
и использовал то же самое пространство для входа в режим mysql:
mysql -uroot -h127.0.0.1 -P3306 -p
и с этим проблем нет.
Так что может привести к отказу в вышеуказанном соединении?