gpt4 book ai didi

docker - 在 docker 文件中添加到 pgadmin 的 postgres 连接

转载 作者:行者123 更新时间:2023-12-02 21:30:24 24 4
gpt4 key购买 nike

有没有办法通过一些服务器连接预先配置 pgadmin(可能通过环境变量)?
假设你有这个 docker-compose.yml,类似于 PGADMIN_CONNECTIONS这个例子中的环境变量? ( PGADMIN_CONNECTIONS 可能不是一个有效的 ENV 变量,它只是一个示例)

version: '3'
services:
postgres:
image: postgres
hostname: postgres
ports:
- "5432:5432"
environment:
POSTGRES_USER: dbuser
POSTGRES_PASSWORD: dbpass
POSTGRES_DB: TEST_SM

pgadmin:
image: dpage/pgadmin4
ports:
- "80:80"
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
PGADMIN_DEFAULT_PASSWORD: admin

??PGADMIN_CONNECTIONS: dbuser:dbpass@postgres:5432

最佳答案

您需要定义一个 servers.json 文件来配置连接。它有很好的记录here .
容器内的默认路径是/pgadmin4/servers.json .您可以 COPY您自己版本的 server.json 文件到新构建的镜像中,或者在运行时将文件绑定(bind)到容器中。
密码无法通过 JSON 传递给 pgadmin,但在下面的示例中引用了包含密码的文件。有关详细信息,请参见下文。server.json 的示例结构文件如下:

{
"Servers": {
"1": {
"Name": "pgadmin4@pgadmin.org",
"Group": "Servers",
"Host": "magic_db",
"Port": 5432,
"MaintenanceDB": "postgres",
"Username": "postgres",
"PassFile": "/pgpass",
"SSLMode": "prefer"
}
}
}
/pgpass需要以下结构:
hostname:port:database:username:password
因此,对于上面的示例,它将是:
magic_db:5432:postgres:postgres:secretpassword
注:在较新版本的 pgadmin 中,密码已更改为 PassFile,如 here 所示。 .

关于docker - 在 docker 文件中添加到 pgadmin 的 postgres 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64620446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com