我試圖dockerize postgresql服務器,同時堅持在主機上的數據。我的容器工作沒有來自主機的安裝體積細小,但它崩潰,因爲與這些卷的權限:Postgresql與碼頭:致命:無法讀取目錄的權限:權限被拒絕
FATAL: could not read permissions of directory "/var/lib/postgresql/9.4/main": Permission denied
我泊塢窗運行命令
docker run -p 54332:5432 -v `pwd`/volumes/postgres/log:/var/log/postgresql -v `pwd`/volumes/postgres/lib:/var/lib/postgresql mypostgres`
和我的搬運工文件:
FROM ubuntu:trusty
RUN apt-get update && \
apt-get install wget --assume-yes
RUN echo "deb http://apt.postgresql.org/pub/repos/apt trusty-pgdg main" >> /etc/apt/sources.list &&\
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
RUN apt-get update &&\
apt-get install postgresql-9.4-postgis-2.1 postgresql-contrib --assume-yes
RUN mkdir /home/postgres/ && \
chown -R postgres /home/postgres
USER postgres
# make .pgpass file
RUN echo "127.0.0.1:5432:database:username:password" >> /home/postgres/.pgpass
RUN /etc/init.d/postgresql start &&\
psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
createdb -O docker docker
# Adjust PostgreSQL configuration so that remote connections to the
# database are possible.
RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.4/main/pg_hba.conf
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.4/main/postgresql.conf
# Expose the PostgreSQL port
EXPOSE 5432
# Add VOLUMEs to allow backup of config, logs and databases
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
# Set the default command to run when starting the container
CMD ["/usr/lib/postgresql/9.4/bin/postgres", "-D", "/var/lib/postgresql/9.4/main", "-c", "config_file=/etc/postgresql/9.4/main/postgresql.conf"]
主機系統的操作系統/分佈是什麼? – lsowen
這是一個Ubuntu服務器,運行到virtualbox,因爲我在windows下開發。我認爲這可能是由於某些安裝的文件夾權限,但無法通過複製文件,更改權限來解決該問題...... – Ben