Я не могу подключить свое приложение php через PDO к postgresql. У меня ошибка classi c:
SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?
Но я могу подключиться к своей базе данных с помощью DBeaver, например, через ту же конфигурацию, которую я использую для PDO (тот же хост, тот же порт, тот же пользователь и тот же пароль! ) и я вижу связь postgresql с netstat commande.
Я использую docker через docker -compose. Это мой docker -compose.yml:
version: '3'
services:
nginx:
image: nginx:stable-alpine
container_name: nginx
depends_on:
- php
volumes:
- "${WWW_DIR}:/usr/share/nginx/html:ro"
- "${NGINX_LOG}:/var/log/nginx"
- "${NGINX_DIR}/nginx.conf:/etc/nginx/nginx.conf:ro"
ports:
- "127.0.0.1:8000:80"
php:
build: ${PHP_DIR}
container_name: php
depends_on:
- pgsql
- composer
volumes:
- "${PHP_LOG}/access.log:/var/log/access.log"
- "${PHP_LOG}/error.log:/var/log/error.log"
- "${WWW_DIR}:/var/www/html"
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
composer:
restart: 'no'
image: composer
command: install
volumes:
- "${WWW_DIR}:/app"
pgsql:
restart: always
build: ${PGSQL_DIR}
container_name: pgsql
volumes:
- "${PGSQL_DIR}/db:/var/lib/postgresql/data"
- "${PGSQL_LOG}:${POSTGRES_INITDB_WALDIR}:z"
ports:
- "127.0.0.1:5432:5432"
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_INITDB_WALDIR=${POSTGRES_INITDB_WALDIR}
Это мой файл .env:
# DIRs
WWW_DIR=../html
PHP_DIR=./php
NGINX_DIR=./nginx
PGSQL_DIR=./pgsql
# LOGs
NGINX_LOG=./nginx/log
PHP_LOG=./php/log
PGSQL_LOG=./pgsql/log
POSTGRES_INITDB_WALDIR=/var/log/pgsql
# DB
POSTGRES_USER=site
POSTGRES_PASSWORD=etis
POSTGRES_DB=dbname
А это мой Dockerfile для postgresql:
FROM postgres:alpine
# DB import
COPY db.sql /docker-entrypoint-initdb.d/
Так в чем я ошибаюсь?
Заранее спасибо.