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