通过 docker compose 文件中的 bash 命令将 postgres 服务器添加到 pgadmin4

问题描述 投票:0回答:1

我正在尝试通过 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

所有帮助将不胜感激。

postgresql bash docker pgadmin
1个回答
0
投票

您可以通过映射servers.json(/pgadmin4/servers.json)文件轻松地做到这一点。查看 https://www.pgadmin.org/docs/pgadmin4/7.7/container_deployment.html#examples

然后servers.json文件将在启动时自动导入。

© www.soinside.com 2019 - 2024. All rights reserved.