我收到错误 SQLSTATE[08006] [7] timeout expired (SQL: select count(*) as aggregate from "users")
我已将 postgresql 监听地址设置为 0.0.0.0
但它没有解决
需要更好的解决方法.env
文件:
DB_CONNECTION=pgsql
DB_HOST=172.17.0.1 // <-- this won't connect. I declare like that based on docker0
DB_PORT=5432
DB_DATABASE=mydb
DB_USERNAME=postgres
DB_PASSWORD=postgres
docker-compose.yml
文件:version: '3'
networks:
laravel:
driver: bridge
volumes:
dbdata:
driver: local
services:
nginx:
build:
context: .
dockerfile: ./docker/nginx.dockerfile
container_name: nginx
ports:
- "${DOCKER_SITE_HOST}:80"
volumes:
- .:/var/www/html
depends_on:
- php
networks:
- laravel
php:
build:
context: .
dockerfile: ./docker/php.dockerfile
container_name: php
volumes:
- .:/var/www/html
ports:
- "9000:9000"
networks:
- laravel
composer:
build:
context: .
dockerfile: ./docker/composer.dockerfile
container_name: composer
volumes:
- .:/var/www/html
working_dir: /var/www/html
depends_on:
- php
user: laravel
entrypoint: [ 'composer', '--ignore-platform-reqs' ]
networks:
- laravel
artisan:
build:
context: .
dockerfile: ./docker/php.dockerfile
container_name: artisan
volumes:
- .:/var/www/html
working_dir: /var/www/html
user: laravel
entrypoint: [ 'php', '/var/www/html/artisan' ]
networks:
- laravel
最佳答案
终于通过使用此解决方法使其工作:
listen_addresses
在 postgresql.conf
上配置至*
因此它变成 listen_addresses = '*'
pg_hba.conf
之上# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
docker0
.env
上的界面关于php - 从 docker 容器中的 laravel 应用程序连接到主机中的 Postgresql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64460598/