我正在尝试使用位于此处的dpage/pgadmin4:latest docker镜像:https://hub.docker.com/r/dpage/pgadmin4/
但是当我试图从docker容器中转储我的服务器设置时,我遇到了困难。
下面是一个可重现的代码:
docker-compose.yml
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: hostdocker-compose pull && docker-compose up --build -d然后从http://localhost:8080的web界面设置一些服务器连接,并尝试从容器内部转储它们:
$ docker-compose exec pgadmin4 sh然后:
/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本身(我想是的!)但我在这里也有一些麻烦:
/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.发布于 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
https://stackoverflow.com/questions/66561151
复制相似问题