我想用docker-compose运行一个webapp。我有一个运行postgresql和docker-engine的centos7主机。我的docker-compose包含一个postgresql-image,应该与主机系统的PGDATA一起运行。但每次我运行docker-compose时都会收到错误:
initdb: directory "/var/lib/docker-postgresql" exists but is not empty
postgresql-database的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
我将Docker-Postgresql-App中的/var/lib/pgsql/9.4挂载到/ var / lib / docker-postgresql,并将此路径设置为PGDATA-ENV。
./postgres/中的Dockerfile如下所示:
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数据?