【问题标题】:How to Change Default import/export Directory in Pgadmin4 Docker Image如何更改 Pgadmin4 Docker 映像中的默认导入/导出目录
【发布时间】:2021-04-29 16:43:11
【问题描述】:

我正在使用这个 docker-compose.yml 文件来构建:

version: '3.8'
services:
  db:
    container_name: pg_container
    image: postgres
    restart: always
    volumes:
      - $HOME/docker/volumes/postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: test
      POSTGRES_PASSWORD: test
      POSTGRES_DB: test_db
    ports:
      - "5432:5432"
  pgadmin:
    container_name: pgadmin4_container
    image: dpage/pgadmin4
    restart: always
#    volumes:
#      - $HOME/docker/volumes/imports:/var/lib/pgadmin/storage
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@admin.com
      PGADMIN_DEFAULT_PASSWORD: root
    ports:
      - "5050:80"

它很好用,只是当我尝试在 Pgadmin4 中使用导入/导出工具时,它只允许我在一个目录中。经过一番研究,我将其追踪到 /var/lib/pgadmin/storage/admin_admin.com 目录。我的想法是我可以将它挂载到本地目录,以便我可以快速修改文件并在导入失败时尝试重新导入。但是,当我取消注释挂载的行时,出现权限错误。

我尝试进入 Pgadmin4 容器并修改 /var/lib/pgadmin/storage 上的文件权限,但我无法确定 root 密码。我想我可能遗漏了一些简单的东西。

有谁知道如何修改 /var/lib/pgadmin/storage 上的文件权限,以便我可以将其挂载到主机上的目录?或者我会在哪里更改 Pgadmin4 导入/导出工具查找文件的默认位置?

【问题讨论】:

    标签: docker docker-compose pgadmin-4


    【解决方案1】:

    我不确定您是否真的需要更改默认导入/导出目录来解决该权限问题。我认为这可能与主机目录的读写权限有关。 Pgadmin documentation 写道:

    警告:pgAdmin 在容器中的 pgadmin 组 (GID: 5050) 中以 pgadmin 用户 (UID: 5050) 的身份运行。您必须确保所有文件都是可读的,并且在必要时(例如工作/会话目录)对于主机上的该用户是可写的。例如:

    sudo chown -R 5050:5050 <host_directory>
    

    在您的情况下,host_directory 将是 $HOME/docker/volumes/imports

    值得一提的是,主机目录上的权限问题有时可能会导致 pgAdmin 容器定期启动,而实际上无法访问服务器,这意味着 Web 浏览器中选项卡的永无止境的加载阶段。

    附:我现在注意到这个问题已经存在几个月了,所以我假设你已经解决了这个问题。希望这对遇到同样问题的其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 2023-01-21
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      相关资源
      最近更新 更多