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