我想从PhpStorm访问我的Postgres数据库(Docker容器)。
docker-compose.yml
# Run docker-compose build
# Run docker-compose up
# Live long and prosper
version: '3.1'
services:
apache:
build: .docker/apache
container_name: sf-apache
ports:
- 82:80
volumes:
- .docker/config/vhosts:/etc/apache2/sites-enabled
- ${SYMFONY_APP}:/home/wwwroot/sf3
depends_on:
- php
postgres:
container_name: postgres
restart: always
image: 'postgres:12.6'
ports:
- "5432:5432"
environment:
- "POSTGRES_USER=${PGSQL_ADMIN_USER}"
- "POSTGRES_PASSWORD=${PGSQL_ADMIN_PASSWORD}"
volumes:
- ./API/var/postgres:/var/lib/postgresql/data
- .docker/postgresql/init-database.sh:/docker-entrypoint-initdb.d/init-database.sh
我的PhpStorm配置:
我可以通过docker exec -it postgres bash
访问数据库
3条答案
按热度按时间kqlmhetl1#
如果php storm在同一台主机上,则需要使用
localhost
。如果phpstorm和pg都是同一个compose文件的一部分,那么您将使用服务名,因为它们都在同一个虚拟网络中wlwcrazw2#
我找到解决办法了。
我有一个本地的Postgres和一个带有Docker的Postgres。我的本地Postgres在我的Docker Postgres上占了上风。我已经杀死了服务,并将容器服务名称放在上面。
完美的工作。
谢谢你的帮助
webghufk3#
在数据库容器上的PhpStorm中点击鼠标右键检查容器,搜索真实的的端口名为HostPort。
在PhpStorm配置中输入真实的的HostPort并开始工作
显示这篇文章下面的附加信息的
https://www.jetbrains.com/help/idea/running-a-dbms-image.html#connect_to_psql
这是一个liftle有点困惑,我搜索自己小时了解,端口设置在docker-compose文件只为内部连接从pdo-driver。对于从外部连接到容器,您需要HostPort-