diff --git a/dockerfiles/ci-tools/README.rst b/dockerfiles/ci-tools/README.rst
index c26e63bca5e257757145f7d293bc21402a8b1055..ef44f0fd5669532690a5b6c11aab7d761661d69c 100644
--- a/dockerfiles/ci-tools/README.rst
+++ b/dockerfiles/ci-tools/README.rst
@@ -7,25 +7,25 @@ A Docker image containing various tools and utilities that come in handy during
 
 List of tools installed:
 
-  * git
-  * openssh-client
-  * rsync
-  * `s-nail`_
-  * `gettext`_
-  * `curl`_
-  * `jq`_
-  * `black`_
-  * `autopep8`_
-  * `release-cli`_
-  * `python-gitlab`_
-  * `junitparser`_
-  * `anybadge`_
-  * `python-compare-ast`_
-  * `coverage-fixpaths`_
-  * `git-scripts`_
-  * ssh-addkey
-  * report-badge
-  * report-diff
+* git
+* openssh-client
+* rsync
+* `s-nail`_
+* `gettext`_
+* `curl`_
+* `jq`_
+* `black`_
+* `autopep8`_
+* `release-cli`_
+* `python-gitlab`_
+* `junitparser`_
+* `anybadge`_
+* `python-compare-ast`_
+* `coverage-fixpaths`_
+* `git-scripts`_
+* ssh-addkey
+* report-badge
+* report-diff
 
 ssh-addkey
 ==========
diff --git a/dockerfiles/conda-builder/Dockerfile b/dockerfiles/conda-builder/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..d3ef628356855d0b7a325938b5714cca026d51d8
--- /dev/null
+++ b/dockerfiles/conda-builder/Dockerfile
@@ -0,0 +1,62 @@
+FROM centos:7
+
+LABEL description="Builds linux-64 conda packages. CentOS 7 + mambaforge + conda-build."
+
+# Configuration options.
+ARG CONDA_INSTALL_DIR=/opt/conda
+ARG CONDA_FORGE_PINNING=2022.02.15.10.00.06
+
+# Set a UTF-8 locale. Useful for running Python 3 programs.
+ENV LANG en_US.utf-8
+ENV LC_ALL en_US.utf-8
+
+# Fetch updates and install dependencies.
+# bzip2 is required for installing conda.
+# git and openssh-clients are required for cloning git repositories in recipes.
+# patch is required for applying patches in recipes.
+RUN yum -y update \
+    && yum -y install bzip2 git openssh-clients patch \
+    && yum clean all \
+    && rm -rf /var/cache/yum
+
+# Install the latest Miniconda with Python 3 and update everything.
+RUN curl -L https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-x86_64.sh -o mambaforge.sh \
+    && bash mambaforge.sh -b -p ${CONDA_INSTALL_DIR} \
+    && rm mambaforge.sh \
+    && ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh \
+    && source /opt/conda/etc/profile.d/conda.sh \
+    && conda activate \
+    && conda config --set show_channel_urls True \
+    && conda config --set channel_priority strict \
+    # There are just too many packages that clobber paths. So don't set to
+    # path_conflict to `prevent` -- else we'll be overriding this setting to
+    # `warn` in lots of projects.
+    && conda config --set path_conflict warn \
+    && conda config --set notify_outdated_conda false \
+    # Set the variant file to the one from conda-forge-pinning.
+    # The conda-forge-pinning package (installed below) puts its variant
+    # file in $CONDA_INSTALL_DIR. Pointing conda-build to that variant file
+    # ensures we're compiling against libraries compatible with the wider
+    # conda-forge ecosystem.
+    && conda config --set conda_build.config_file ${CONDA_INSTALL_DIR}/conda_build_config.yaml \
+    # Explicitly fail when overlinking shared libraries. This will prevent dynamic library linking issues,
+    # and will be the default setting in conda build 4.0 anyway.
+    && conda config --set conda_build.error_overlinking True \
+    # Explicitly install a specific build of requests because of a chardet incompability.
+    # See https://github.com/conda-forge/requests-feedstock/pull/54. \
+    # TODO: when the metadata of the affected requests packages has been patched,
+    #       remove the `requests` line.
+    && conda install --yes --update-all \
+          conda-build \
+          conda-verify \
+          mamba \
+          boa \
+          coverage \
+          coverage-fixpaths \
+          conda-forge-pinning=${CONDA_FORGE_PINNING} \
+          requests=2.28.0=pyhd8ed1ab_1 \
+    && conda clean -tipy \
+    && conda-build purge-all
+
+# Provide a default command (`bash`), which will start if the user doesn't specify one.
+CMD [ "/bin/bash" ]
diff --git a/dockerfiles/conda-builder/README.rst b/dockerfiles/conda-builder/README.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c06c9c35d770226f8845e902ac12d6e05815c836
--- /dev/null
+++ b/dockerfiles/conda-builder/README.rst
@@ -0,0 +1,25 @@
+=============
+conda-builder
+=============
+
+Docker image based upon CentOS 7 for building linux-64 conda packages on top of conda-forge.
+
+List of tools installed:
+
+* `conda`_
+* `conda-build`_
+* `conda-verify`_
+* `mamba`_
+* `boa`_
+* `coverage`_
+* `coverage-fixpaths`_
+* `conda-forge-pinning`_
+
+.. _conda: https://docs.conda.io
+.. _conda-build: https://docs.conda.io/projects/conda-build
+.. _conda-verify: https://github.com/conda/conda-verify
+.. _mamba: https://github.com/mamba-org/mamba
+.. _boa: https://github.com/mamba-org/boa
+.. _coverage: https://coverage.readthedocs.io
+.. _coverage-fixpaths: https://github.com/omegacen/coverage-fixpaths
+.. _conda-forge-pinning: https://github.com/conda-forge/conda-forge-pinning-feedstock