我正在尝试通过 docker compose 文件中的 bash 命令将 postgres 服务器添加到 pgadmin4。 这是我的 docker 撰写文件:
version: '3.9'
services:
podcast_db:
image: postgres:15.3-alpine
container_name: podcast_db
ports:
- 5432:5432
volumes:
- podcast_db_data:/usr/share/podcast_db/data
env_file:
- ./database/.env.local.db
# instead, we could have created a `environment` section, with
# with the env vars in .env.local.db file.
podcast_pgadmin:
image: dpage/pgadmin4
container_name: pgadmin4_container
ports:
- 5050:80
env_file:
- ./database/.env.local.db
command: >
sh -c " sudo apt-get install jq
| TOKEN=$(curl -s -X POST -d "username=${PGADMIN_DEFAULT_EMAIL}&password=${PGADMIN_DEFAULT_PASSWORD}" ${PGADMIN_URL}/api/v1/auth/login | jq -r .access_token)
| curl -X POST -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" -d '{
"name": "'${POSTGRES_NAME}'",
"host": "'${POSTGRES_HOST}'",
"port": '${POSTGRES_PORT}',
"ssl_mode": "prefer",
"maintenance_database": "'${POSTGRES_DB}'",
"username": "'${POSTGRES_USER}'",
"password": "'${POSTGRES_PASSWORD}'"
}' ${PGADMIN_URL}/api/v1/servers"
volumes:
podcast_db_data:
上面的部分,在命令部分,是在chatGPT的帮助下完成的......是的。 :D
我可以使用 pgadmin GUI 添加服务器,没有任何问题...
但是,我想从 bash 添加它。
当我这样做时
docker compose up
,我在终端中没有收到任何错误消息,当我通过 GUI 检查时,没有添加服务器...
这是 pgadmining 容器的日志:
NOTE: Configuring authentication for SERVER mode.
pgAdmin 4 - Application Initialisation
======================================
postfix/postlog: starting the Postfix mail system
[2023-10-03 19:47:43 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2023-10-03 19:47:43 +0000] [1] [INFO] Listening at: http://[::]:80 (1)
[2023-10-03 19:47:43 +0000] [1] [INFO] Using worker: gthread
[2023-10-03 19:47:43 +0000] [91] [INFO] Booting worker with pid: 91
所有帮助将不胜感激。
您可以通过映射servers.json(/pgadmin4/servers.json)文件轻松地做到这一点。查看 https://www.pgadmin.org/docs/pgadmin4/7.7/container_deployment.html#examples
然后servers.json文件将在启动时自动导入。