我试图使用命令在我的应用程序中创建一个数据库: php bin/console doctrine:database:create
之后我得到一个错误: An exception occurred in driver: 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?
我的 docker-compose 文件如下所示:
version: '3'
services:
php:
container_name: symfony_php
build:
context: ./php
volumes:
- ./symfony/:/var/www/symfony/
depends_on:
- database
networks:
- symfony
database:
container_name: symfony_postgres
image: postgres
restart: always
hostname: symfony_postgres
environment:
POSTGRES_DB: symfony_db
POSTGRES_USER: root
POSTGRES_PASSWORD: root
ports:
- "5432:5432"
volumes:
- ./postgres:/var/lib/postgres
networks:
- symfony
pgadmin:
container_name: symfony_pgadmin
image: dpage/pgadmin4
restart: always
ports:
- "5555:80"
depends_on:
- database
links:
- database
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: root
networks:
- symfony
nginx:
container_name: symfony_nginx
image: nginx:stable-alpine
build:
context: ./nginx
dockerfile: Dockerfile-nginx
volumes:
- ./symfony:/var/www/symfony
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
- database
networks:
- symfony
networks:
symfony:
我没有使用任何 postgres 配置文件,根据 Symfony 文档,.env 中有一个配置行: DATABASE_URL="postgresql://root:[email protected]:5432/symfony_db?serverVersion=11&charset=utf8"
我运行 netstat 命令并得到:tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
我认为将我的本地主机地址绑定到我的应用程序服务器运行到 postgres 时存在问题。有谁知道,我该如何解决?
在 docker-compose 中,所有服务都可以通过它们的名字来访问。
您需要将数据库主机地址更改为数据库- 作为 docker-compose 中的服务名称
DATABASE_URL="postgresql://root:root@database:5432/symfony_db?serverVersion=11&charset=utf8"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句