如何解决在Docker文件中向pgadmin添加postgress连接
是否可以通过某些服务器连接预先配置pgadmin(也许通过env变量)?
假设您有这个docker-compose.yml,在此示例中类似PGADMIN_CONNECTIONS
env变量? (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
。您可以将自己的server.json文件版本COPY
放入新生成的映像中,也可以在运行时将其绑定安装到容器中。
不能通过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所示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。