diff --git a/Dockerfile b/Dockerfile index a7387b784273d8c207da782a083800c756a5d134..09c6f4022d8283847ebe0f1244acaf00a474e59e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,11 @@ -FROM centos/postgresql-95-centos7 as pg +FROM rhel8/postgresql-12 as pg LABEL maintainer="David Bitner / Remi Cresson" +ENV POSTGIS_MAJOR 3 +ENV PGUSER postgres +ENV PGDATABASE postgres +ENV PGHOST localhost ENV \ PYTHONUNBUFFERED=1 \ PYTHONFAULTHANDLER=1 \ @@ -9,32 +13,52 @@ ENV \ PIP_NO_CACHE_DIR=off \ PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DEFAULT_TIMEOUT=100 -USER root + RUN \ - yum install -y \ - git \ + apt-get update \ + && apt-get install -y --no-install-recommends \ + gnupg \ + apt-transport-https \ + debian-archive-keyring \ + software-properties-common \ + postgresql-$PG_MAJOR-pgtap \ + postgresql-$PG_MAJOR-partman \ + postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR \ + postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts \ build-essential \ python3 \ python3-pip \ - python3-setuptools -RUN pip3 install -U pip setuptools packaging \ + python3-setuptools \ + && pip3 install -U pip setuptools packaging \ && pip3 install -U psycopg2-binary \ && pip3 install -U psycopg[binary] \ && pip3 install -U migra[pg] \ - && yum -y autoremove \ + && apt-get remove -y apt-transport-https \ + && apt-get -y autoremove \ && rm -rf /var/lib/apt/lists/* EXPOSE 5432 -RUN git clone https://github.com/stac-utils/pgstac \ - && cd pgstac/pypgstac \ - && sed -i 's/python_requires=">=3.7"/python_requires=">=3.6"/g' setup.py \ - && sed -i 's/pydantic\[dotenv\]==1.10/pydantic\[dotenv\]==1.9/g' setup.py \ - && cat setup.py \ - && pip install . - -ENV POSTGRESQL_USER=username -ENV POSTGRESQL_PASSWORD=password -ENV POSTGRESQL_DATABASE=postgis - -USER postgres +RUN mkdir -p /docker-entrypoint-initdb.d +RUN echo "#!/bin/bash \n unset PGHOST \n pypgstac migrate" >/docker-entrypoint-initdb.d/initpgstac.sh && chmod +x /docker-entrypoint-initdb.d/initpgstac.sh + +RUN mkdir -p /opt/src/pypgstac + +WORKDIR /opt/src/pypgstac + +COPY pypgstac /opt/src/pypgstac + +RUN pip3 install -e /opt/src/pypgstac[psycopg] + +ENV PYTHONPATH=/opt/src/pypgstac:${PYTHONPATH} + +WORKDIR /opt/src + + +ENV POSTGRES_USER=username +ENV POSTGRES_PASSWORD=password +ENV POSTGRES_DB=postgis +ENV PGUSER=username +ENV PGPASSWORD=password +ENV PGHOST=localhost +ENV PGDATABASE=postgis