这是我的docker-compose.yml文件:
version: "3.5"
services:
db:
image: myapp
container_name: my-database
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypasswd
POSTGRES_DB: mydb
expose:
- "5432"
ports:
- 8000:5432
volumes:
- /path/to/my/migrationsV1_0__audit_table.sql
- //path/to/my/migrations/V1_1__tables.sql
pgadmin:
image: dpage/pgadmin4
ports:
- 5454:5454/tcp
environment:
- PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
- PGADMIN_DEFAULT_PASSWORD=postgres
- PGADMIN_LISTEN_PORT=5454
然后我$ docker inspect xxxxxxxx | grep "IPAddress"
它产生输出:
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
在docker-compose之后,我向pgadmin输入值:
但是pgadmin给出了错误:
无法连接到服务器
超时到期。
这是怎么了?
答案 0 :(得分:0)
在您的配置中,PostgreSQL数据库具有5432端口(默认值)。 您确定在这一行吗?
$this->db->where('hospital_id', $this->hospital_id);
$expenses = $this->db->get('expense')->result();
foreach ($expenses as $expense) {
if (date('m/y', $expense->date) == date('m/y', time())) {
$this_month_expense[] = $expense->amount;
}
}
尝试将其替换为
PGADMIN_LISTEN_PORT=5454
答案 1 :(得分:0)
要解决此问题,只需使用-user = root 运行容器(在docker-compose中使用 user:root )
答案 2 :(得分:0)
您需要使用Postgres容器的网关地址。使用docker inspect xxxxxxxx | grep Gateway
来获取它。我想您的情况应该是172.17.0.1