2016-05-20 3 views
1

DockerfileでPostgis拡張を有効にするにはどうすればよいですか?DockerfileでPostgis拡張Postgresを有効にする

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 
+0

を有効にするためのソリューションは、あなたはこれを試していました: '-c RUN psqlと "EXTENSIONのPostGISのをCREATEしますか;"'? はいの場合、それは役に立たなかったので、使用しているDockerfileを表示できますか? –

+0

私が試してみると:psql -c "CREATE EXTENSION postgis;" 。 psql:サーバーに接続できませんでした:接続が拒否されました サーバーはローカルで実行されており、Unixドメインソケット "/var/run/postgresql/.s.PGSQL.5432"の接続は ですか? –

答えて

1

あなたはapache/marmotta Dockerfileのようなことpsql -cコマンドを使用して他のDockerfilesを、表示された場合、あなたが表示されますPostgresのインストールはすでに、これはUbuntuのでコマンドです

を働いています次のような行:

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 

sの場合、postgresqlサービスが実行されていることを確認して、それらのコマンドが成功するようにする必要があります。

+0

ありがとうございます –

1

延長

# Enable Postgis 
RUN service postgresql start \ 
&& sudo -u postgres psql -c "CREATE EXTENSION postgis;" 
RUN service postgresql stop 
関連する問題