在Dockerfile中启用Postgis扩展Postgres
我如何在Dockerfile中启用Postgis扩展? Postgres安装已经在运行
这是Ubuntu中的命令:
sudo -u postgres psql -c "CREATE EXTENSION postgis;"
我的Dockerfile:
# Set the base image to Ubuntu FROM ubuntu:14.04 # Update the repository sources list RUN apt-get update -y ################## BEGIN INSTALLATION ###################### # Postgres with Postgis # Install wget RUN apt-get install wget -y # Setup Postgres repository RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - # Add Postgres repository RUN sh -c "echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" >> /etc/apt/sources.list.d/postgresql.list" # Update repository RUN apt-get update -y # Install Postgres with Postgis RUN apt-get install postgresql-9.3-postgis-2.1 -y # Change rights for start Postgresql RUN chmod +x /etc/init.d/postgresql # Start Postgresql CMD service postgresql start && tail -F /var/lib/postgresql/data/serverlog
如果你使用psql -c
命令看到其他Dockerfiles,比如apache/marmotta
Dockerfile ,你会看到如下的行:
RUN service postgresql start \ && psql --command "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';" \ && psql --command "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER;" USER root RUN service postgresql stop
换句话说,你需要确保postgresql服务正在运行,这些命令才能成功。
启用扩展的解决scheme
# Enable Postgis RUN service postgresql start \ && sudo -u postgres psql -c "CREATE EXTENSION postgis;" RUN service postgresql stop