我正在学习使用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.yml
和Dockerfile
合并成一个docker-compose.yml
文件。
1条答案
按热度按时间1l5u6lss1#
您可以从PgAdmin GUI上载文件。
Here is a good article about how to do it。