postgresql - 使用 pgadmin4 将 csv 文件从本地机器导入到 postgresql docker 容器
问题描述
我正在学习使用 docker。我正在使用 docker 使用 postgresql 和 pgadmin4 设置数据库。我写了一个docker-compose.yml
文件如下,
version: '3.8'
services:
db:
container_name: postgres
image: postgres
restart: always
volumes:
- ${HOME}/Desktop/dbms-2/:/var/lib/postgresql/data
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: test_db
ports:
- "5432:5432"
build:
context: .
dockerfile: Dockerfile
pgadmin:
container_name: pgadmin4
image: dpage/pgadmin4
restart: always
volumes:
- ${HOME}/Desktop/dbms-2/:/var/lib/pgadmin4/storage
environment:
PGADMIN_DEFAULT_EMAIL: admin@admin.com
PGADMIN_DEFAULT_PASSWORD: root
ports:
- "5050:80"
还有一个 docker 文件,用于在 Postgres 中启动 SQL 脚本,如下所示,(我有docker-entrypoint-initdb.d
子目录并且docker-compose.yml
在同一个根目录中。)
FROM postgres:latest
COPY docker-entrypoint-initdb.d/*.sql /docker-entrypoint-initdb.d/
RUN chmod a+r /docker-entrypoint-initdb.d/*
EXPOSE 6666
现在我的 csv 文件包含本地文件系统中另一个目录中的表。/var/lib/pgadmin/storage/admin_admin.com/
当我在将这些文件复制到目录后尝试从 pgAdmin4 GUI 导入它们时${HOME}/Desktop/dbms-2/
,我得到了一个
[Errno 13] 权限被拒绝:'/var/lib/pgadmin/storage/admin_admin.com/name.basics.tsv'。
有没有比这些更好的导入表格的方法?我在这里犯了什么错误?以及如何将其合并docker-compose.yml
到Dockerfile
一个docker-compose.yml
文件中。
解决方案
推荐阅读
- r - 如何根据 R 中一个变量的值删除一些观察结果?
- kdb - 从字节向量反序列化压缩文件
- javascript - 关于 Symbol.iterator 和迭代器,iterables
- python - 在类级别的类声明期间是否可以引用类的方法?
- javascript - 在 HTML 表单中单击按钮时调用 Django View 函数,使用表单操作
- django - 如何在 Django 中使用 slice 和 if 语句?
- java - 找不到在 gitlab runner 中下载的文件
- docker - 在 kubernetes 集群中运行的 elasticsearch pod 的基本身份验证
- .net - Visual Studio 将 VB.net 应用程序编译为 NATIVE Executable
- amazon-web-services - 从 ElasticBeanstalk EC2 连接到 Redis (ElastiCache) 失败