Skip to content

Use official Miniforge image, remove redundant apt bootstrap step, and fix Python 3.13 environment pin compatibility#66

Merged
espenhgn merged 8 commits into
mainfrom
copilot/update-dockerfile-pull-miniforge3
Apr 21, 2026
Merged

Use official Miniforge image, remove redundant apt bootstrap step, and fix Python 3.13 environment pin compatibility#66
espenhgn merged 8 commits into
mainfrom
copilot/update-dockerfile-pull-miniforge3

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 21, 2026

Changes proposed in this pull request:

  • Replaces manual Miniforge bootstrap in docker/dockerfiles/container_template/Dockerfile with the official prebuilt base image from quay.io/condaforge/miniforge3:26.1.1-3.
  • Removes redundant bootstrap steps now covered by the Miniforge base image:
    • Removes install_miniforge3.sh copy/execute layers from the Dockerfile.
    • Removes apt_get_essential.sh copy/execute layer from the Dockerfile.
    • Deletes docker/scripts/apt_get_essential.sh.
  • Preserves environment provisioning behavior via environment.yml:
    • mamba env update --name base --file environment.yml
    • conda clean --all --yes
  • Updates package pinning in docker/scripts/environment.yml for Python 3.13 compatibility:
    • Bumps pandas from 2.2.2 to 2.2.3 to resolve the conda solver failure during container build.
  • Adds focused regression coverage in tests/test_container_template.py to assert the Dockerfile uses the expected Miniforge base image and keeps the environment.yml-based env update directive.
FROM quay.io/condaforge/miniforge3:26.1.1-3

WORKDIR /tmp
COPY /scripts/environment.yml .
RUN mamba env update --name base --file environment.yml && \
    conda clean --all --yes && \
    rm -rf /tmp/*

Before submitting

  • I've read and followed all steps in the Making a pull request
    section of the CONTRIBUTING docs.
  • I've updated or added any relevant docstrings following the syntax described in the
    Writing docstrings section of the CONTRIBUTING docs.
  • If this PR fixes a bug, I've added a test that will fail without my fix.
  • If this PR adds a new feature, I've added tests that sufficiently cover my new functionality.

@espenhgn espenhgn added the enhancement New feature or request label Apr 21, 2026
Copilot AI changed the title [WIP] Update Dockerfile to pull base image from quay.io/condaforge/miniforge3 Use official Miniforge image for container build Apr 21, 2026
Copilot AI requested a review from espenhgn April 21, 2026 07:44
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot remove the step using the apt_get_essential.sh script, and the script itself.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 729242a: removed the apt_get_essential.sh step from docker/dockerfiles/container_template/Dockerfile and deleted docker/scripts/apt_get_essential.sh.

Copilot AI changed the title Use official Miniforge image for container build Use official Miniforge image and remove redundant apt bootstrap step Apr 21, 2026
Copilot AI requested a review from espenhgn April 21, 2026 07:51
COPY /scripts/install_miniforge3.sh .
RUN bash install_miniforge3.sh
COPY /scripts/environment.yml .
RUN mamba env update --name base --file environment.yml && \
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot update version pins in environment.yml file to versions compatible with Python=3.13, fixing failing build:

#6 [4/5] RUN mamba env update --name base --file environment.yml &&     conda clean --all --yes &&     rm -rf /tmp/*
#6 11.77 
#6 11.77 Pinned packages:
#6 11.77 
#6 11.77   - python=3.13
#6 11.77 
#6 13.53 error    libmamba Could not solve for environment specs
#6 13.53     The following packages are incompatible
#6 13.53     ├─ pandas =2.2.2 * is installable with the potential options
#6 13.53     │  ├─ pandas 2.2.2 would require
#6 13.53     │  │  └─ python >=3.10,<3.11.0a0 *, which can be installed;
#6 13.53     │  ├─ pandas 2.2.2 would require
#6 13.53     │  │  └─ python >=3.11,<3.12.0a0 *, which can be installed;
#6 13.53     │  ├─ pandas 2.2.2 would require
#6 13.53     │  │  └─ python >=3.12,<3.13.0a0 *, which can be installed;
#6 13.53     │  └─ pandas 2.2.2 would require
#6 13.53     │     └─ python >=3.9,<3.10.0a0 *, which can be installed;
#6 13.53     └─ pin on python =3.13 * is not installable because it requires
#6 13.53        └─ python =3.13 *, which conflicts with any installable versions previously reported.
#6 13.55 critical libmamba Could not solve for environment specs
#6 ERROR: process "/bin/sh -c mamba env update --name base --file environment.yml &&     conda clean --all --yes &&     rm -rf /tmp/*" did not complete successfully: exit code: 1
------
 > [4/5] RUN mamba env update --name base --file environment.yml &&     conda clean --all --yes &&     rm -rf /tmp/*:
13.53     │  │  └─ python >=3.10,<3.11.0a0 *, which can be installed;
13.53     │  ├─ pandas 2.2.2 would require
13.53     │  │  └─ python >=3.11,<3.12.0a0 *, which can be installed;
13.53     │  ├─ pandas 2.2.2 would require
13.53     │  │  └─ python >=3.12,<3.13.0a0 *, which can be installed;
13.53     │  └─ pandas 2.2.2 would require
13.53     │     └─ python >=3.9,<3.10.0a0 *, which can be installed;
13.53     └─ pin on python =3.13 * is not installable because it requires
13.53        └─ python =3.13 *, which conflicts with any installable versions previously reported.
13.55 critical libmamba Could not solve for environment specs
------

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 6905637: updated /docker/scripts/environment.yml pin from pandas=2.2.2 to pandas=2.2.3, which is compatible with python=3.13 and resolves the CI solver failure you reported.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 21, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • prefix.dev
    • Triggering command: /opt/conda/bin/mamba mamba env update --name base --file environment.yml (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title Use official Miniforge image and remove redundant apt bootstrap step Use official Miniforge image, remove redundant apt bootstrap step, and fix Python 3.13 environment pin compatibility Apr 21, 2026
Copilot AI requested a review from espenhgn April 21, 2026 08:04
@espenhgn espenhgn marked this pull request as ready for review April 21, 2026 08:38
@espenhgn espenhgn merged commit 6b37c75 into main Apr 21, 2026
7 checks passed
@espenhgn espenhgn deleted the copilot/update-dockerfile-pull-miniforge3 branch April 21, 2026 08:39
@espenhgn espenhgn mentioned this pull request Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pull base image from quay.io/condaforge/miniforge3

2 participants