From c85bf7dc0185479d66e768d9f13ae2c527d18cd6 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:07:33 +0200 Subject: [PATCH 01/13] update: use debian bookworm explicitly for junifer-ci image --- Dockerfile-ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile-ci b/Dockerfile-ci index d30bb9899..ad6f16f87 100644 --- a/Dockerfile-ci +++ b/Dockerfile-ci @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM python:3.12-slim +FROM python:3.12-slim-bookworm LABEL org.opencontainers.image.source=https://github.com/juaml/junifer LABEL org.opencontainers.image.description="Junifer CI container image" From a635dcddf425ad0a066a18bee17ff2de3d5bf7ae Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:37:25 +0200 Subject: [PATCH 02/13] chore: remove commentary from docker publish yamls --- .github/workflows/docker-ci-publish.yml | 40 ----------------------- .github/workflows/docker-docs-publish.yml | 39 ---------------------- 2 files changed, 79 deletions(-) diff --git a/.github/workflows/docker-ci-publish.yml b/.github/workflows/docker-ci-publish.yml index 58a4ede2d..3c19fd10e 100644 --- a/.github/workflows/docker-ci-publish.yml +++ b/.github/workflows/docker-ci-publish.yml @@ -1,62 +1,37 @@ name: Docker for CI -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - on: push: - # Only run when the file is edited on main branches: [ "main" ] paths: [ "Dockerfile-ci" ] pull_request: - # Only run when the file is edited on main branches: [ "main" ] paths: [ "Dockerfile-ci" ] workflow_dispatch: {} env: - # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io - # github.repository as / IMAGE_NAME: ${{ github.repository }}-ci - jobs: build: - runs-on: ubuntu-24.04 permissions: contents: read packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. id-token: write - steps: - # Taken from https://github.com/orgs/community/discussions/25678#discussioncomment-5242449 - name: Delete huge unnecessary tools folder run: rm -rf /opt/hostedtoolcache - name: Checkout repository uses: actions/checkout@v5 - - # Install the cosign tool except on PR - # https://github.com/sigstore/cosign-installer - name: Install cosign if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 #v3.10.0 with: cosign-release: 'v2.2.4' - - # Set up BuildKit Docker container builder to be able to build - # multi-platform images and export cache - # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 @@ -64,17 +39,11 @@ jobs: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - # Extract metadata (tags, labels) for Docker - # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - # Build and push Docker image with Buildx (don't push on PR) - # https://github.com/docker/build-push-action - name: Build and push Docker image id: build-and-push uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 @@ -86,18 +55,9 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - - # Sign the resulting Docker image digest except on PRs. - # This will only write to the public Rekor transparency log when the Docker - # repository is public to avoid leaking data. If you would like to publish - # transparency data even for private images, pass --force to cosign below. - # https://github.com/sigstore/cosign - name: Sign the published Docker image if: ${{ github.event_name != 'pull_request' }} env: - # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable TAGS: ${{ steps.meta.outputs.tags }} DIGEST: ${{ steps.build-and-push.outputs.digest }} - # This step uses the identity token to provision an ephemeral certificate - # against the sigstore community Fulcio instance. run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST} diff --git a/.github/workflows/docker-docs-publish.yml b/.github/workflows/docker-docs-publish.yml index 00a36bffd..7307288be 100644 --- a/.github/workflows/docker-docs-publish.yml +++ b/.github/workflows/docker-docs-publish.yml @@ -1,59 +1,35 @@ name: Docker for docs -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - on: push: - # Only run when the file is edited on main branches: [ "main" ] paths: [ "Dockerfile-docs" ] pull_request: - # Only run when the file is edited on main branches: [ "main" ] paths: [ "Dockerfile-docs" ] workflow_dispatch: {} env: - # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io - # github.repository as / IMAGE_NAME: ${{ github.repository }}-docs - jobs: build: - runs-on: ubuntu-24.04 permissions: contents: read packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. id-token: write - steps: - name: Checkout repository uses: actions/checkout@v5 - - # Install the cosign tool except on PR - # https://github.com/sigstore/cosign-installer - name: Install cosign if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 #v3.10.0 with: cosign-release: 'v2.2.4' - - # Set up BuildKit Docker container builder to be able to build - # multi-platform images and export cache - # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 @@ -61,17 +37,11 @@ jobs: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - # Extract metadata (tags, labels) for Docker - # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - # Build and push Docker image with Buildx (don't push on PR) - # https://github.com/docker/build-push-action - name: Build and push Docker image id: build-and-push uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 @@ -83,18 +53,9 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - - # Sign the resulting Docker image digest except on PRs. - # This will only write to the public Rekor transparency log when the Docker - # repository is public to avoid leaking data. If you would like to publish - # transparency data even for private images, pass --force to cosign below. - # https://github.com/sigstore/cosign - name: Sign the published Docker image if: ${{ github.event_name != 'pull_request' }} env: - # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable TAGS: ${{ steps.meta.outputs.tags }} DIGEST: ${{ steps.build-and-push.outputs.digest }} - # This step uses the identity token to provision an ephemeral certificate - # against the sigstore community Fulcio instance. run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST} From 1d0ff2c87e69580d2ce5e9fd34204fcc45e82f82 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:41:02 +0200 Subject: [PATCH 03/13] chore: thorough runner cleanup for docker publish ymls --- .github/workflows/docker-ci-publish.yml | 12 ++++++++++-- .github/workflows/docker-docs-publish.yml | 10 ++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-ci-publish.yml b/.github/workflows/docker-ci-publish.yml index 3c19fd10e..85142c5af 100644 --- a/.github/workflows/docker-ci-publish.yml +++ b/.github/workflows/docker-ci-publish.yml @@ -21,8 +21,16 @@ jobs: packages: write id-token: write steps: - - name: Delete huge unnecessary tools folder - run: rm -rf /opt/hostedtoolcache + - run: df -h + - name: Clean runner + run: | + rm -rf /usr/share/dotnet \ + /usr/local/lib/android \ + /opt/ghc \ + /opt/hostedtoolcache + docker image prune --all --force + docker builder prune -a + - run: df -h - name: Checkout repository uses: actions/checkout@v5 - name: Install cosign diff --git a/.github/workflows/docker-docs-publish.yml b/.github/workflows/docker-docs-publish.yml index 7307288be..12caca69c 100644 --- a/.github/workflows/docker-docs-publish.yml +++ b/.github/workflows/docker-docs-publish.yml @@ -21,6 +21,16 @@ jobs: packages: write id-token: write steps: + - run: df -h + - name: Clean runner + run: | + rm -rf /usr/share/dotnet \ + /usr/local/lib/android \ + /opt/ghc \ + /opt/hostedtoolcache + docker image prune --all --force + docker builder prune -a + - run: df -h - name: Checkout repository uses: actions/checkout@v5 - name: Install cosign From 066db40f188b953e4780e3a6ed5caf4e57e1d84b Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:41:36 +0200 Subject: [PATCH 04/13] chore: thorough runner cleanup of ci.yml --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aebe8b72b..4927f6b3f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,15 +24,16 @@ jobs: fail-fast: false matrix: python-version: ['3.9', '3.10', '3.11', '3.12'] - steps: - run: df -h - name: Clean runner run: | rm -rf /usr/share/dotnet \ - /usr/local/lib/android \ - /opt/ghc \ - /opt/hostedtoolcache/CodeQL + /usr/local/lib/android \ + /opt/ghc \ + /opt/hostedtoolcache + docker image prune --all --force + docker builder prune -a - run: df -h - name: Check ANTs run: | From 69153375e2f01f4ffcccc3150898cce495bc1534 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:42:05 +0200 Subject: [PATCH 05/13] chore: switch from commit hash to version tag tagginf for gh-actions in docker publish ymls --- .github/workflows/docker-ci-publish.yml | 12 +++++------- .github/workflows/docker-docs-publish.yml | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/docker-ci-publish.yml b/.github/workflows/docker-ci-publish.yml index 85142c5af..4fdfc85d1 100644 --- a/.github/workflows/docker-ci-publish.yml +++ b/.github/workflows/docker-ci-publish.yml @@ -35,26 +35,24 @@ jobs: uses: actions/checkout@v5 - name: Install cosign if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 #v3.10.0 - with: - cosign-release: 'v2.2.4' + uses: sigstore/cosign-installer@v3.10.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + uses: docker/setup-buildx-action@v3.11.1 - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@v3.5.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract Docker metadata id: meta - uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0 + uses: docker/metadata-action@v5.8.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image id: build-and-push - uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 + uses: docker/build-push-action@v6.18.0 with: context: . file: Dockerfile-ci diff --git a/.github/workflows/docker-docs-publish.yml b/.github/workflows/docker-docs-publish.yml index 12caca69c..156bbf62f 100644 --- a/.github/workflows/docker-docs-publish.yml +++ b/.github/workflows/docker-docs-publish.yml @@ -35,26 +35,24 @@ jobs: uses: actions/checkout@v5 - name: Install cosign if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 #v3.10.0 - with: - cosign-release: 'v2.2.4' + uses: sigstore/cosign-installer@v3.10.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + uses: docker/setup-buildx-action@v3.11.1 - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@v3.5.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract Docker metadata id: meta - uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0 + uses: docker/metadata-action@v5.8.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image id: build-and-push - uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 + uses: docker/build-push-action@v6.18.0 with: context: . file: Dockerfile-docs From 096a99737169e7fee05a73905328024cc5359bd5 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:43:30 +0200 Subject: [PATCH 06/13] update: add manual trigger for ci.yml --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4927f6b3f..fd9843a97 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,7 @@ on: - '.github/workflows/**' - 'tox.ini' - 'pyproject.toml' + workflow_dispatch: {} jobs: run-tests: From 5978b7e1a2e5e034625aedc4708c0ef6529b4f7d Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:47:01 +0200 Subject: [PATCH 07/13] chore: remove docker pruning from ci.yml --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd9843a97..1e13b6801 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,8 +33,6 @@ jobs: /usr/local/lib/android \ /opt/ghc \ /opt/hostedtoolcache - docker image prune --all --force - docker builder prune -a - run: df -h - name: Check ANTs run: | From b65200380c836a3a63a96775c9ae3f5c619880f8 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 14:58:28 +0200 Subject: [PATCH 08/13] chore: force cleanup runner for docker-ci-publish.yml --- .github/workflows/docker-ci-publish.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-ci-publish.yml b/.github/workflows/docker-ci-publish.yml index 4fdfc85d1..716501cdf 100644 --- a/.github/workflows/docker-ci-publish.yml +++ b/.github/workflows/docker-ci-publish.yml @@ -24,12 +24,12 @@ jobs: - run: df -h - name: Clean runner run: | - rm -rf /usr/share/dotnet \ + sudo rm -rf /usr/share/dotnet \ /usr/local/lib/android \ /opt/ghc \ /opt/hostedtoolcache - docker image prune --all --force - docker builder prune -a + sudo docker image prune --all --force + sudo docker builder prune -a - run: df -h - name: Checkout repository uses: actions/checkout@v5 From d0e01866a0eaaacfe72139ec37421399160a2627 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 16:23:45 +0200 Subject: [PATCH 09/13] chore: aesthetic spacing for steps in ci.yml --- .github/workflows/ci.yml | 116 +++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e13b6801..81cf0e23a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,61 +26,61 @@ jobs: matrix: python-version: ['3.9', '3.10', '3.11', '3.12'] steps: - - run: df -h - - name: Clean runner - run: | - rm -rf /usr/share/dotnet \ - /usr/local/lib/android \ - /opt/ghc \ - /opt/hostedtoolcache - - run: df -h - - name: Check ANTs - run: | - echo "Using ANTs : $(antsRegistration --version)" - - name: Check AFNI - run: | - echo "Using AFNI : $(afni --version)" - - name: Check FSL - run: | - echo "Using FSL : $(flirt -version)" - - name: Install system dependencies - # actions/checkout fails to identify Git as it's not in the CI image - run: | - apt-get -qq update - apt-get -qq install -y \ - git \ - git-annex \ - make \ - jq - - name: Copy junifer-data directory - run: | - mkdir -p $HOME/junifer_data/v4 - cp -ar /root/junifer_data/v4/. $HOME/junifer_data/v4/ - - name: Checkout repository - uses: actions/checkout@v5 - with: - submodules: true - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v6 - with: - python-version: ${{ matrix.python-version }} - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip setuptools wheel - python -m pip install tox tox-gh-actions - - name: Configure Git for DataLad - run: | - git config --global user.email "junifer-runner@github.com" - git config --global user.name "GitHub Runner" - - name: Test with tox - # https://github.com/actions/checkout/issues/1169#issuecomment-2291682583 - run: | - git config --system --add safe.directory $(pwd) - tox - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 - with: - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true - flags: junifer - if: success() && matrix.python-version == 3.12 + - run: df -h + - name: Clean runner + run: | + rm -rf /usr/share/dotnet \ + /usr/local/lib/android \ + /opt/ghc \ + /opt/hostedtoolcache + - run: df -h + - name: Check ANTs + run: | + echo "Using ANTs : $(antsRegistration --version)" + - name: Check AFNI + run: | + echo "Using AFNI : $(afni --version)" + - name: Check FSL + run: | + echo "Using FSL : $(flirt -version)" + - name: Install system dependencies + # actions/checkout fails to identify Git as it's not in the CI image + run: | + apt-get -qq update + apt-get -qq install -y \ + git \ + git-annex \ + make \ + jq + - name: Copy junifer-data directory + run: | + mkdir -p $HOME/junifer_data/v4 + cp -ar /root/junifer_data/v4/. $HOME/junifer_data/v4/ + - name: Checkout repository + uses: actions/checkout@v5 + with: + submodules: true + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip setuptools wheel + python -m pip install tox tox-gh-actions + - name: Configure Git for DataLad + run: | + git config --global user.email "junifer-runner@github.com" + git config --global user.name "GitHub Runner" + - name: Test with tox + # https://github.com/actions/checkout/issues/1169#issuecomment-2291682583 + run: | + git config --system --add safe.directory $(pwd) + tox + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: true + flags: junifer + if: success() && matrix.python-version == 3.12 From 2e58636bc37700329598dffd867677f10ee78ef6 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 16:30:57 +0200 Subject: [PATCH 10/13] chore: fix changelog formatting --- docs/changes/newsfragments/467.misc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changes/newsfragments/467.misc b/docs/changes/newsfragments/467.misc index 76cc05c59..3ac6714f3 100644 --- a/docs/changes/newsfragments/467.misc +++ b/docs/changes/newsfragments/467.misc @@ -1 +1 @@ -Disable FSL installation for `junifer-ci` Docker image build with `junifer-data` v4 by `Synchon Mandal`_ +Disable FSL installation for ``junifer-ci`` Docker image build with ``junifer-data`` v4 by `Synchon Mandal`_ From e0a1af83e4375edd2a80eeb6e8fda4bc84d5375b Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 16:31:24 +0200 Subject: [PATCH 11/13] chore: add changelog 468.misc --- docs/changes/newsfragments/468.misc | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/changes/newsfragments/468.misc diff --git a/docs/changes/newsfragments/468.misc b/docs/changes/newsfragments/468.misc new file mode 100644 index 000000000..429ea3055 --- /dev/null +++ b/docs/changes/newsfragments/468.misc @@ -0,0 +1 @@ +Pin ``junifer-ci`` Docker image to ``python:3.12-slim-bookworm`` by `Synchon Mandal`_ From bd9d1bb64d79bca4b3a888e812801738e73d0b32 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 16:36:01 +0200 Subject: [PATCH 12/13] update: attempt FSL installation in junifer-ci image build --- Dockerfile-ci | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Dockerfile-ci b/Dockerfile-ci index ad6f16f87..6c2c3c41c 100644 --- a/Dockerfile-ci +++ b/Dockerfile-ci @@ -60,14 +60,13 @@ ENV PATH="/opt/afni/bin:$PATH" # Patch gsl RUN ln -s /usr/lib/x86_64-linux-gnu/libgsl.so.27 /usr/lib/x86_64-linux-gnu/libgsl.so.23 -# disabled as standard github runner fails to install due to insufficient space on device -# # Add FSL -# RUN curl https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py | \ -# python - -d /opt/fsl/ --skip_registration -# # Set env vars for FSL -# ENV FSLDIR=/opt/fsl \ -# FSLOUTPUTTYPE=NIFTI_GZ \ -# PATH="/opt/fsl/share/fsl/bin:$PATH" +# Add FSL +RUN curl https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py | \ + python - -d /opt/fsl/ --skip_registration +# Set env vars for FSL +ENV FSLDIR=/opt/fsl \ + FSLOUTPUTTYPE=NIFTI_GZ \ + PATH="/opt/fsl/share/fsl/bin:$PATH" # Clean apt cache RUN apt-get autoremove --purge && apt-get clean From 2ff3db48953faeb9ce51d7807cd849d091f06b87 Mon Sep 17 00:00:00 2001 From: Synchon Mandal Date: Mon, 22 Sep 2025 16:59:50 +0200 Subject: [PATCH 13/13] chore: update changelog 468.misc --- docs/changes/newsfragments/468.misc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changes/newsfragments/468.misc b/docs/changes/newsfragments/468.misc index 429ea3055..2ee5a38b7 100644 --- a/docs/changes/newsfragments/468.misc +++ b/docs/changes/newsfragments/468.misc @@ -1 +1 @@ -Pin ``junifer-ci`` Docker image to ``python:3.12-slim-bookworm`` by `Synchon Mandal`_ +Pin ``junifer-ci`` Docker image to ``python:3.12-slim-bookworm`` and re-enable FSL installation by `Synchon Mandal`_