使用pgadmin4将csv文件从本地计算机导入postgresql Docker容器

5cnsuln7  于 2022-11-22  发布在  Docker
关注(0)|答案(1)|浏览(213)

我正在学习使用docker。我正在使用postgresql和pgadmin4使用docker建立一个数据库。我写了一个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/${HOME}/Desktop/dbms-2/目录后,当我尝试从pgAdmin4 GUI导入它们时,我得到了一个
[Errno 13]权限被拒绝:“您可以使用以下方法来创建一个新文件夹:
还有比这更好的导入表的方法吗?我犯了什么错误?我如何将docker-compose.ymlDockerfile合并成一个docker-compose.yml文件。

相关问题