diff --git a/mapserver/Dockerfile b/mapserver/Dockerfile
index dae3972c36a635ca95ab3b8b8348802467cd4ddf..da386a09df0380ea73755a610cb28c19d2113416 100644
--- a/mapserver/Dockerfile
+++ b/mapserver/Dockerfile
@@ -1,30 +1,111 @@
-FROM tiledb/tiledb-geospatial:1.7.0
-
-WORKDIR /work
+FROM ubuntu:20.04
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV TZ=GMT
+ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
+ENV LANG=C.UTF-8
+ENV LC_ALL=C.UTF-8
+
+RUN apt-get update && apt-get install -y \
+  gosu \
+  pwgen \
+  tzdata \
+  gcc \
+  g++ \
+  automake \
+  build-essential \
+  cmake \
+  sqlite \
+  libsqlite3-dev \
+  libxml2-dev \
+  libjpeg-dev \
+  libjpeg-turbo8 \
+  libjpeg-turbo8-dev \
+  libpng-dev \
+  libfreetype6 \
+  libfreetype6-dev \
+  libzstd-dev \
+  libnetcdf-dev \
+  python3-pip \
+  pkg-config \
+  git \
+  wget \
+  curl \
+  unzip \
+  libcurl4 \
+  libcurl4-openssl-dev \
+  zlib1g-dev \
+  libfribidi-dev \
+  libharfbuzz-dev \
+  libcairo2-dev \
+  libfcgi-dev \
+  libgeos++-dev \
+  libpq-dev \
+  postgresql-server-dev-all \
+  libxml2-dev \
+  libgif-dev \
+  libprotobuf-dev \
+  protobuf-compiler \
+  libprotobuf-c-dev \
+  libprotobuf-c1 \
+  libprotobuf-dev \
+  protobuf-c-compiler \
+  && rm -rf /var/lib/apt/lists/*
 
-# FIXME: Remove once added to parent image
-RUN pip3 install shapely
+# Install libtiff
+RUN mkdir -p /build_deps && cd /build_deps \
+  && wget --no-check-certificate https://download.osgeo.org/libtiff/tiff-4.3.0.tar.gz \
+  && tar -zxf tiff-4.3.0.tar.gz \
+  && cd tiff-4.3.0 \
+  && ./configure \
+  && make \
+  && make install
+
+# Install Proj
+RUN cd /build_deps \
+  && git clone https://github.com/OSGeo/PROJ.git -b 8.2.1 && cd PROJ \
+  && mkdir -p build && cd build \
+  && cmake .. \
+  && make -j$(nproc) \
+  && make install
 
-RUN apt-get -y update && \
-    apt-get -y upgrade && \
-    apt-get -y install gcc g++ cmake sqlite3 libsqlite3-dev pkg-config bash-completion curl subversion && \
-    apt-get -y clean
+# Install libgeotiff
+RUN cd /build_deps \
+  && wget --no-check-certificate https://download.osgeo.org/geotiff/libgeotiff/libgeotiff-1.7.1.tar.gz \
+  && tar -zxf libgeotiff-1.7.1.tar.gz \
+  && cd libgeotiff-1.7.1 \
+  && mkdir -p build && cd build \
+  && cmake .. \
+  && make \
+  && make install
+
+# Install GDAL
+RUN cd /build_deps \
+  && git clone --depth 1 --branch v3.5.0alpha1 https://github.com/OSGeo/gdal.git && cd gdal \
+  && ./autogen.sh \
+  && ./configure --with-crypto=no --with-curl=yes --with-netcdf=yes \
+  && make -j$(nproc) \
+  && make install
 
+# Install Cython, Rasterio, and Fiona
+RUN cd /build_deps && pip3 install cython rasterio fiona shapely pyproj
 
-# FIXME: Remove if/when upstream image builds with fcgi
-# Install Mapserver (unstable)
-RUN mkdir -p /build_deps && cd /build_deps \
-  && apt-get -y update \
-#  && apt-get install -y libprotobuf17 zlib1g-dev libpng-dev libjpeg-turbo8 libfreetype6 libfribidi-dev libharfbuzz-dev libcairo2-dev libfcgi-dev libgeos++-dev postgresql postgis libxml2-dev libgif-dev libjpeg-turbo8-dev libprotobuf-dev protobuf-compiler libprotobuf-c-dev libprotobuf-c1 libprotobuf-dev protobuf-c-compiler \
-  && apt-get install -y zlib1g-dev libpng-dev libjpeg-turbo8 libfreetype6 libfribidi-dev libharfbuzz-dev libcairo2-dev libfcgi-dev libgeos++-dev libpq-dev postgresql-server-dev-all libxml2-dev libgif-dev libjpeg-turbo8-dev libprotobuf-dev protobuf-compiler libprotobuf-c-dev libprotobuf-c1 libprotobuf-dev protobuf-c-compiler \
-  && apt-get -y clean \
+# Install Mapserver
+RUN cd /build_deps \
   && git clone https://github.com/mapserver/mapserver.git && cd mapserver \
-  && git checkout 0fcc810f0b559c800f950db78a79fa6574799f23 \
+  && git checkout rel-7-6-4 \
   && mkdir -p build && cd build \
-  && cmake .. -DWITH_PROTOBUFC=OFF -DWITH_POSTGIS=OFF \
+  && cmake .. -DWITH_GIF=OFF -DWITH_HARFBUZZ=OFF -DWITH_PROTOBUFC=OFF -DWITH_FRIBIDI=OFF -DWITH_POSTGIS=ON -DWITH_GEOS=OFF -DWITH_FCGI=OFF -DWITH_CAIRO=OFF \
   && make -j$(nproc) \
-  && make install \
-  && cd && rm -rf /build_deps
+  && make install
+
+# Clean up
+RUN cd /tmp && rm -r /build_deps
+
+
+
+
+WORKDIR /work
 
 # apache
 # http://www.inanzzz.com/index.php/post/rhsb/running-apache-server-as-foreground-on-ubuntu-with-dockerfile
@@ -39,18 +120,15 @@ ENV APACHE_SERVER_NAME localhost
 
 # install httpd runtime dependencies
 # https://httpd.apache.org/docs/2.4/install.html#requirements
-RUN mkdir -p /build_deps && cd /build_deps && \
-    apt-get -y install apache2 libapache2-mod-fcgid && \
+RUN apt-get update && apt-get -y install apache2 libapache2-mod-fcgid libapache2-mod-php php-common php-cli php-fpm php && \
     ls /etc/apache2/mods-available && \
     ls /etc/apache2/mods-enabled && \
-    apt-get -y install libapache2-mod-php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2 && \
     a2enmod actions proxy_fcgi setenvif cgi fcgid rewrite && \
-    a2enconf php7.2-fpm serve-cgi-bin && \
+    a2enconf php7.4-fpm serve-cgi-bin && \
     apt-get -y clean && \
     rm -rf /var/lib/apt/lists/*
 
-RUN apt-get -y update && apt-get install -y unzip \
-  && curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip \
+RUN curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip \
   && curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip \
   && curl -LOk https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/physical/ne_10m_lakes.zip \
   && curl -LOk https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_county_500k.zip \
@@ -66,9 +144,7 @@ RUN apt-get -y update && apt-get install -y unzip \
   && unzip -d /work/shapefiles ne_10m_graticules_5.zip \
   && unzip -d /work/shapefiles ne_10m_graticules_10.zip \
   && chmod a+r /work/shapefiles/* \
-  && rm -f ne_*.zip cb_*.zip \
-  && apt-get -y clean \
-  && rm -rf /var/lib/apt/lists/*
+  && rm -f ne_*.zip cb_*.zip
 
 # Install Fonts for mapserver labels
 RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections \