Created
July 24, 2018 19:42
-
-
Save sww314/4638d2605bc1400b000f7d1e73d3d793 to your computer and use it in GitHub Desktop.
Django + PostGIS Docker File
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM python:3.6-alpine | |
ENV PYTHONUNBUFFERED 1 | |
RUN apk update \ | |
# psycopg2 dependencies | |
&& apk add --virtual build-deps gcc python3-dev musl-dev \ | |
&& apk add postgresql-dev \ | |
# Pillow dependencies | |
&& apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev \ | |
# CFFI dependencies | |
&& apk add libffi-dev py-cffi \ | |
# Translations dependencies | |
&& apk add gettext \ | |
# Need git to install packages from git | |
&& apk add git | |
# ADD PostGIS here | |
# POSTGIS dependencies | |
ENV POSTGIS_VERSION 2.4.4 | |
ENV POSTGIS_SHA256 0dff4902556ad45430e2b85dbe7e9baa758c6eb0bfd5ff6948f478beddd56b67 | |
RUN set -ex \ | |
\ | |
&& apk add --no-cache --virtual .fetch-deps \ | |
ca-certificates \ | |
openssl \ | |
tar \ | |
\ | |
&& wget -O postgis.tar.gz "https://github.com/postgis/postgis/archive/$POSTGIS_VERSION.tar.gz" \ | |
&& echo "$POSTGIS_SHA256 *postgis.tar.gz" | sha256sum -c - \ | |
&& mkdir -p /usr/src/postgis \ | |
&& tar \ | |
--extract \ | |
--file postgis.tar.gz \ | |
--directory /usr/src/postgis \ | |
--strip-components 1 \ | |
&& rm postgis.tar.gz \ | |
\ | |
&& apk add --no-cache --virtual .build-deps \ | |
autoconf \ | |
automake \ | |
g++ \ | |
json-c-dev \ | |
libtool \ | |
libxml2-dev \ | |
make \ | |
perl \ | |
\ | |
# add libcrypto from (edge:main) for gdal-2.3.0 | |
&& apk add --no-cache --virtual .crypto-rundeps \ | |
--repository http://dl-cdn.alpinelinux.org/alpine/edge/main \ | |
libressl2.7-libcrypto \ | |
&& apk add --no-cache --virtual .build-deps-testing \ | |
--repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ | |
gdal-dev \ | |
geos-dev \ | |
proj4-dev \ | |
protobuf-c-dev \ | |
&& cd /usr/src/postgis \ | |
&& ./autogen.sh \ | |
# configure options taken from: | |
# https://anonscm.debian.org/cgit/pkg-grass/postgis.git/tree/debian/rules?h=jessie | |
&& ./configure \ | |
# --with-gui \ | |
&& make \ | |
&& make install \ | |
&& apk add --no-cache --virtual .postgis-rundeps \ | |
json-c \ | |
&& apk add --no-cache --virtual .postgis-rundeps-testing \ | |
--repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ | |
geos \ | |
gdal \ | |
proj4 \ | |
protobuf-c \ | |
&& cd / \ | |
&& rm -rf /usr/src/postgis \ | |
&& apk del .fetch-deps .build-deps .build-deps-testing | |
# && apk del .fetch-deps .build-deps .build-deps-testing | |
# END POSTGIS Changes | |
# Requirements have to be pulled and installed here, otherwise caching won't work | |
COPY ./requirements /requirements | |
RUN pip install -r /requirements/local.txt | |
COPY ./compose/production/django/entrypoint.sh /entrypoint.sh | |
RUN sed -i 's/\r//' /entrypoint.sh | |
RUN chmod +x /entrypoint.sh | |
COPY ./compose/local/django/start.sh /start.sh | |
RUN sed -i 's/\r//' /start.sh | |
RUN chmod +x /start.sh | |
COPY ./compose/local/django/celery/worker/start.sh /start-celeryworker.sh | |
RUN sed -i 's/\r//' /start-celeryworker.sh | |
RUN chmod +x /start-celeryworker.sh | |
COPY ./compose/local/django/celery/beat/start.sh /start-celerybeat.sh | |
RUN sed -i 's/\r//' /start-celerybeat.sh | |
RUN chmod +x /start-celerybeat.sh | |
WORKDIR /app | |
ENTRYPOINT ["/entrypoint.sh"] |
elcolie
commented
Feb 3, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment