@@ -73,7 +73,7 @@ RUN set -ex \
7373 && rm -rf /build \
7474 && sed -r -i "s/[#]*\s *(shared_preload_libraries)\s *=\s *'(.*)'/\1 = 'timescaledb,\2 '/;s/,'/'/" /usr/local/share/postgresql/postgresql.conf.sample
7575
76- # Add Citus to shared_preload_libraries
76+ # Update to shared_preload_libraries
7777RUN echo "shared_preload_libraries = 'citus,timescaledb,pg_stat_statements'" >> /usr/local/share/postgresql/postgresql.conf.sample
7878
7979# Adding PG Vector
@@ -132,43 +132,99 @@ RUN set -ex \
132132 && rm -rf /tmp/citus.tar.gz /tmp/citus-${CITUS_VERSION} \
133133 && apk del .citus-deps .citus-build-deps
134134
135- # # Adding PostGIS
136- # Install PostGIS dependencies
137- RUN apk add --no-cache --virtual .postgis-deps \
138- geos-dev \
139- gdal-dev \
140- proj-dev \
141- curl \
142- json-c-dev \
143- protobuf-c-dev
144135
145- # Install PostGIS
146136ARG POSTGIS_VERSION
147- RUN set -ex \
148- && apk add --no-cache --virtual .postgis-build-deps \
149- gcc \
137+ ARG POSTGIS_SHA256
138+
139+ RUN set -eux \
140+ \
141+ && if [ $(printf %.1s "$POSTGIS_VERSION" ) == 3 ]; then \
142+ set -eux ; \
143+ export GEOS_ALPINE_VER=3.11 ; \
144+ export GDAL_ALPINE_VER=3.5 ; \
145+ export PROJ_ALPINE_VER=9.1 ; \
146+ elif [ $(printf %.1s "$POSTGIS_VERSION" ) == 2 ]; then \
147+ set -eux ; \
148+ export GEOS_ALPINE_VER=3.8 ; \
149+ export GDAL_ALPINE_VER=3.2 ; \
150+ export PROJ_ALPINE_VER=7.2 ; \
151+ \
152+ echo 'https://dl-cdn.alpinelinux.org/alpine/v3.14/main' >> /etc/apk/repositories ; \
153+ echo 'https://dl-cdn.alpinelinux.org/alpine/v3.14/community' >> /etc/apk/repositories ; \
154+ echo 'https://dl-cdn.alpinelinux.org/alpine/v3.13/main' >> /etc/apk/repositories ; \
155+ echo 'https://dl-cdn.alpinelinux.org/alpine/v3.13/community' >> /etc/apk/repositories ; \
156+ \
157+ else \
158+ set -eux ; \
159+ echo ".... unknown \$ POSTGIS_VERSION ...." ; \
160+ exit 1 ; \
161+ fi \
162+ \
163+ && apk add --no-cache --virtual .fetch-deps \
164+ ca-certificates \
165+ openssl \
166+ tar \
167+ \
168+ && wget -O postgis.tar.gz "https://github.com/postgis/postgis/archive/${POSTGIS_VERSION}.tar.gz" \
169+ && echo "${POSTGIS_SHA256} *postgis.tar.gz" | sha256sum -c - \
170+ && mkdir -p /usr/src/postgis \
171+ && tar \
172+ --extract \
173+ --file postgis.tar.gz \
174+ --directory /usr/src/postgis \
175+ --strip-components 1 \
176+ && rm postgis.tar.gz \
177+ \
178+ && apk add --no-cache --virtual .build-deps \
179+ \
180+ gdal-dev~=${GDAL_ALPINE_VER} \
181+ geos-dev~=${GEOS_ALPINE_VER} \
182+ proj-dev~=${PROJ_ALPINE_VER} \
183+ \
184+ autoconf \
185+ automake \
186+ clang-dev \
187+ cunit-dev \
188+ file \
150189 g++ \
151- libc-dev \
152- make \
190+ gcc \
191+ gettext-dev \
192+ git \
193+ json-c-dev \
194+ libtool \
153195 libxml2-dev \
154- musl-dev \
196+ llvm-dev \
197+ make \
198+ pcre-dev \
155199 perl \
156- clang \
157- geos-dev \
158- gdal-dev \
159- proj-dev \
160200 protobuf-c-dev \
161- llvm15-dev \
162- json-c-dev \
163- && POSTGIS_DOWNLOAD_URL= "https://download.osgeo.org/postgis/source/postgis-${POSTGIS_VERSION}.tar.gz" \
164- && curl -L -o /tmp/ postgis.tar.gz "${POSTGIS_DOWNLOAD_URL}" \
165- && tar -C /tmp -xvf /tmp/postgis.tar.gz \
166- && chown -R postgres:postgres /tmp/postgis-${POSTGIS_VERSION} \
167- && cd /tmp/postgis-${POSTGIS_VERSION} \
168- && PATH= "/usr/local/pgsql/bin:$PATH" ./configure \
169- && make \
201+ \
202+ # build PostGIS
203+ \
204+ && cd /usr/src/ postgis \
205+ && gettextize \
206+ && ./autogen.sh \
207+ && ./configure \
208+ --with-pcredir= "$(pcre-config --prefix)" \
209+ && make -j$(nproc) \
170210 && make install \
171- && cd ~ \
172- && rm -rf /tmp/postgis.tar.gz /tmp/postgis-${POSTGIS_VERSION} \
173- && apk del .postgis-deps .postgis-build-deps
174-
211+ \
212+ # add .postgis-rundeps
213+ && apk add --no-cache --virtual .postgis-rundeps \
214+ \
215+ gdal~=${GDAL_ALPINE_VER} \
216+ geos~=${GEOS_ALPINE_VER} \
217+ proj~=${PROJ_ALPINE_VER} \
218+ \
219+ json-c \
220+ libstdc++ \
221+ pcre \
222+ protobuf-c \
223+ \
224+ # ca-certificates: for accessing remote raster files
225+ # fix https://github.com/postgis/docker-postgis/issues/307
226+ ca-certificates \
227+ # clean
228+ && cd / \
229+ && rm -rf /usr/src/postgis \
230+ && apk del .fetch-deps .build-deps
0 commit comments