首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pgadmin4 docker无法转储服务器配置;没有名为“flask”的模块

pgadmin4 docker无法转储服务器配置;没有名为“flask”的模块
EN

Stack Overflow用户
提问于 2021-03-10 16:41:13
回答 1查看 180关注 0票数 0

我正在尝试使用位于此处的dpage/pgadmin4:latest docker镜像:https://hub.docker.com/r/dpage/pgadmin4/

但是当我试图从docker容器中转储我的服务器设置时,我遇到了困难。

下面是一个可重现的代码:

docker-compose.yml

代码语言:javascript
复制
version: '3.8'
services:
  pgadmin4:
    image: dpage/pgadmin4
    container_name: pgadmin4
    environment:
      - PGADMIN_DEFAULT_EMAIL=postgres@localhost
      - PGADMIN_DEFAULT_PASSWORD="K%)*r7K~57Kcnw"
      - PGADMIN_LISTEN_PORT=8080
    ports:
      - "8080:8080"
    restart: unless-stopped
    network_mode: host
代码语言:javascript
复制
docker-compose pull && docker-compose up --build -d

然后从http://localhost:8080的web界面设置一些服务器连接,并尝试从容器内部转储它们:

代码语言:javascript
复制
$ docker-compose exec pgadmin4 sh

然后:

代码语言:javascript
复制
/pgadmin4 $ python3 /pgadmin4/setup.py --dump-servers /tmp/servers.json
Traceback (most recent call last):
  File "/pgadmin4/setup.py", line 31, in <module>
    from pgadmin import create_app
  File "/pgadmin4/pgadmin/__init__.py", line 21, in <module>
    from flask import Flask, abort, request, current_app, session, url_for
ModuleNotFoundError: No module named 'flask'

我显然是想安装flask本身(我想是的!)但我在这里也有一些麻烦:

代码语言:javascript
复制
/pgadmin4 $ pip install flask
WARNING: The directory '/home/pgadmin/.cache/pip' or its parent directory is
not owned or is not writable by the current user. The cache has been disabled.
Check the permissions and owner of that directory. If executing pip with sudo,
you may want sudo's -H flag.

Defaulting to user installation because normal site-packages is not writeable

Collecting flask
  Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)
     |████████████████████████████████| 94 kB 312 kB/s 
Collecting Jinja2>=2.10.1
  Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB)
     |████████████████████████████████| 125 kB 385 kB/s 
Collecting Werkzeug>=0.15
  Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
     |████████████████████████████████| 298 kB 279 kB/s 
Collecting itsdangerous>=0.24
  Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting click>=5.1
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 332 kB/s 
Collecting MarkupSafe>=0.23
  Downloading MarkupSafe-1.1.1.tar.gz (19 kB)
Using legacy 'setup.py install' for MarkupSafe, since package 'wheel' is not installed.
Installing collected packages: MarkupSafe, Werkzeug, Jinja2, itsdangerous, click, flask
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/pgadmin'
Check the permissions.
EN

回答 1

Stack Overflow用户

发布于 2021-10-20 18:52:40

容器正在使用的python3安装似乎与sh路径中的安装不同

它使用的是/venv/bin/python3,您可以在Dockerfile中看到它。

所以如果你运行:

/venv/bin/python3 /pgadmin4/setup.py --dump-servers /tmp/servers.json

如果您使用python二进制文件,则该命令将起作用。对我来说,它失败了,因为pgadmin用户没有写权限(根用户拥有的文件夹),所以我需要使用根用户重新登录。为此,您需要运行以下命令:

docker-compose exec -it -u 0 pgadmin4 sh

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66561151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档