来自Docker系统中主机的PostgreSQL PGDATA
我想用docker compose运行一个webapp。我有一个运行postgresql和docker引擎的centos7主机。我的docker compose包含一个postgresql映像,应该与主机系统中的PGDATA一起运行。但每次我运行docker compose时都会出现错误:来自Docker系统中主机的PostgreSQL PGDATA,postgresql,docker,docker-compose,Postgresql,Docker,Docker Compose,我想用docker compose运行一个webapp。我有一个运行postgresql和docker引擎的centos7主机。我的docker compose包含一个postgresql映像,应该与主机系统中的PGDATA一起运行。但每次我运行docker compose时都会出现错误: initdb:directory“/var/lib/docker-postgresql”存在但不是空的 postgresql数据库的docker compose部分如下所示: db: build: .
initdb:directory“/var/lib/docker-postgresql”存在但不是空的
postgresql数据库的docker compose部分如下所示:
db:
build: ./postgres/
container_name: ps01
volumes:
- ./postgres:/tmp
- /var/lib/pgsql/9.4:/var/lib/docker-postgresql
expose:
- "5432"
environment:
PGDATA: /var/lib/docker-postgresql
FROM postgres:latest
ENV POSTGIS_MAJOR 2.3
ENV POSTGIS_VERSION 2.3.1+dfsg-1.pgdg80+1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION \
postgis=$POSTGIS_VERSION \
&& rm -rf /var/lib/apt/lists/*
我将Docker Postgresql应用程序中的/var/lib/pgsql/9.4装载到/var/lib/Docker Postgresql,并将此路径设置为PGDATA-ENV
/postgres/中的Dockerfile如下所示:
db:
build: ./postgres/
container_name: ps01
volumes:
- ./postgres:/tmp
- /var/lib/pgsql/9.4:/var/lib/docker-postgresql
expose:
- "5432"
environment:
PGDATA: /var/lib/docker-postgresql
FROM postgres:latest
ENV POSTGIS_MAJOR 2.3
ENV POSTGIS_VERSION 2.3.1+dfsg-1.pgdg80+1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION \
postgis=$POSTGIS_VERSION \
&& rm -rf /var/lib/apt/lists/*
我应该如何从主机共享我的Postgres数据