我正在尝试设置PostgreSQL容器(https://hub.docker.com/_/postgres/).我有一些来自当前PostgreSQL实例的数据.我将其复制/var/lib/postgresql/data
并希望将其设置为PostgreSQL容器的卷.
我是关于PostgreSQL的docker-compose.yml文件的一部分:
db:
image: postgres:9.4
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
PGDATA : /var/lib/postgresql/data
volumes:
- /projects/own/docker_php/pgdata:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)
当我做docker-compose时,我收到这条消息:
db_1 | initdb: directory "/var/lib/postgresql/data" exists but is not empty
db_1 | If you want to create a new database system, either remove or empty
db_1 | the directory "/var/lib/postgresql/data" or run initdb
db_1 | with an argument other than "/var/lib/postgresql/data".
Run Code Online (Sandbox Code Playgroud)
我试图从容器中创建自己的图像,所以我的Dockerfile是:
FROM postgres:9.4
COPY pgdata /var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)
但是我得到了同样的错误,我做错了什么?
我使用pg_dumpall获取SQL并将其放在/docker-entrypoint-initdb.d中,但每次执行此文件都会执行docker-compose up
.