diff --git a/pica-mobilizon/db/Dockerfile b/pica-mobilizon/db/Dockerfile index ad867be9a5f1599a0f8b312f73b195f4c2b9b4c4..01800da65b9d967608bc1421757d56cf1f9a5e8f 100644 --- a/pica-mobilizon/db/Dockerfile +++ b/pica-mobilizon/db/Dockerfile @@ -1,6 +1,5 @@ -FROM postgres:12-alpine -ARG POSTGRES_DB -RUN apk update \ - && apk add --update postgis \ - && rm -rf /tmp/* /var/tmp/* -RUN printf "\\c "$POSTGRES_DB" \n CREATE EXTENSION postgis; \n CREATE EXTENSION pg_trgm; \n CREATE EXTENSION unaccent;" > /docker-entrypoint-initdb.d/setup.sql +# Same Dockerfile as official image, but different extensions : +# https://github.com/postgis/docker-postgis/blob/7639baab95220201b87476b2dd09e011423ebd55/12-3.0/alpine/initdb-postgis.sh +FROM postgis/postgis:12-3.0-alpine + +COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/10_postgis.sh diff --git a/pica-mobilizon/db/initdb-postgis.sh b/pica-mobilizon/db/initdb-postgis.sh new file mode 100644 index 0000000000000000000000000000000000000000..6a716a6fa7c61eafbaa3d1ee224b42e18bce7d26 --- /dev/null +++ b/pica-mobilizon/db/initdb-postgis.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +# Perform all actions as $POSTGRES_USER +export PGUSER="$POSTGRES_USER" + +# Create the 'template_postgis' template db +"${psql[@]}" <<- 'EOSQL' +CREATE DATABASE template_postgis IS_TEMPLATE true; +EOSQL + +# Load PostGIS into both template_database and $POSTGRES_DB +for DB in template_postgis "$POSTGRES_DB"; do + echo "Loading PostGIS extensions into $DB" + "${psql[@]}" --dbname="$DB" <<-'EOSQL' + CREATE EXTENSION IF NOT EXISTS postgis; + CREATE EXTENSION IF NOT EXISTS pg_trgm; + CREATE EXTENSION IF NOT EXISTS unaccent; +EOSQL +done diff --git a/pica-mobilizon/docker-compose.yml b/pica-mobilizon/docker-compose.yml index 113c9192979571cc79c1504e4fa0fc0fae5d8fb9..617e966e8a8eef30928b4413a9709575ad8110cb 100644 --- a/pica-mobilizon/docker-compose.yml +++ b/pica-mobilizon/docker-compose.yml @@ -60,7 +60,7 @@ services: context: ./db dockerfile: Dockerfile args: - - POSGRES_DB=postgres_mobilizon + - POSTGRES_DB=postgres_mobilizon container_name: mobilizon-db volumes: - mobilizon-db:/var/lib/postgresql/data