Dockerized PGAdmin 映射卷 + COPY 不起作用

Dockerized PGAdmin Mapped volume + COPY not working

我有一个场景,其中某个数据集来自 CSV,我需要允许非开发人员访问 PG Admin 并更新该数据集。我希望能够将此 CSV 放在主机系统的映射文件夹中,然后使用 PG Admin GUI 执行 运行 和 COPY 命令。到目前为止,PG 管理员告诉我:

错误:无法打开文件“/var/lib/pgadmin/data-files/some_data.csv”进行读取:没有这样的文件或目录

这是我到目前为止的步骤,以及完整性检查检查:

docker volume create --name=data-files

docker run -e PGADMIN_DEFAULT_EMAIL="pgadmin@example.com" -e PGADMIN_DEFAULT_PASSWORD=some_pass -v data-files:/var/lib/pgadmin/data-files -d -p 5050:80 --name pgadmin dpage/pgadmin4

docker volume inspect data-files  --format '{{.Mountpoint}}'
/app/docker/volumes/data-files/_data

docker cp ./updated-data.csv pgadmin:/var/lib/pgadmin/data-files

而且,现在我认为 PG Admin 可以看到 updated-data.csv,所以我尝试 COPY,我知道它在 PG Admin 在 baremetal 上的开发系统上本地工作:

COPY foo.bar(
    ...
)
FROM '/var/lib/pgadmin/data-files/updated-data.csv'
DELIMITER ','
CSV HEADER
ENCODING 'windows-1252';

这里有什么明显的错误吗?当我执行 docker cp 时,没有对标准输出的反馈。没有错误,没有提到成功或哈希或任何东西。

看起来您认为该文件应该在 pgadmin 容器中,但是您要复制的文件必须 在 postgres 容器中 所以查询您 运行 将找到该文件。我建议您将文件复制到 postgres 容器:

docker cp <path_from_your_local>/file.csv <postgres_container_name>:/file.csv

然后在您的 pgadmin 的查询工具中,您可以毫无问题地复制!

我希望这对其他人有帮助...