From b0d2ace542906feea7466c65d63033b7fd66a1c5 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Wed, 17 Jun 2026 16:00:03 +0100 Subject: [PATCH 1/6] lower base image version from ubuntu-25.10 to ubuntu-24.04 --- .github/workflows/docker-publish.yaml | 2 +- docker/Dockerfile | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index e01b804..570246e 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -11,7 +11,7 @@ env: jobs: build-and-push-docker-image: - runs-on: ubuntu-25.10 + runs-on: ubuntu-24.04 permissions: contents: read packages: write # Required to push images to GHCR diff --git a/docker/Dockerfile b/docker/Dockerfile index 7ad3b0c..14fd06e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,5 @@ # Stage 1: Fetch Schema Artifacts -FROM ubuntu:25.10 AS schema-fetcher +FROM ubuntu:24.04 AS schema-fetcher RUN apt-get update && apt-get install -y --no-install-recommends curl jq tar ca-certificates \ && rm -rf /var/lib/apt/lists/* \ @@ -15,7 +15,7 @@ RUN TAG=$(curl -fsSL https://api.github.com/repos/CCPBioSim/biosim-schema/releas # Stage 2: Build Python dependencies -FROM ubuntu:25.10 AS builder +FROM ubuntu:24.04 AS builder ENV DEBIAN_FRONTEND=noninteractive \ PYTHONDONTWRITEBYTECODE=1 \ @@ -47,7 +47,7 @@ RUN pip install --upgrade pip setuptools && \ # Stage 3: Runtime -FROM ubuntu:25.10 +FROM ubuntu:24.04 ARG PORT=5002 From ace6a24db232920c0ba76ead59411bc2e9a0f6d9 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Wed, 17 Jun 2026 16:09:07 +0100 Subject: [PATCH 2/6] set up Docker Buildx to support cache backends --- .github/workflows/docker-publish.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 570246e..df8d34e 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -20,6 +20,9 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Fetch external versions and build date id: vars shell: bash @@ -51,7 +54,7 @@ jobs: biosim.extractor.version=${{ steps.vars.outputs.extractor }} - name: Build and push Docker image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./docker/Dockerfile From d7a920f5012030ada3fbc42dc77fd3a342fd9385 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Wed, 17 Jun 2026 16:23:12 +0100 Subject: [PATCH 3/6] include schema and extractor versions in image tag --- .github/workflows/docker-publish.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index df8d34e..f58c42f 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -48,6 +48,7 @@ jobs: tags: | type=raw,value=latest,enable={{is_default_branch}} type=sha + type=raw,value=schema-${{ steps.vars.outputs.schema }}-extractor-${{ steps.vars.outputs.extractor }}-${{ steps.vars.outputs.date }} labels: | org.opencontainers.image.created=${{ steps.vars.outputs.date }} biosim.schema.version=${{ steps.vars.outputs.schema }} From 5d5a91621655eb1e7b2f45acb7389fe17dc1ea82 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Wed, 17 Jun 2026 16:58:22 +0100 Subject: [PATCH 4/6] remove extra image tag --- .github/workflows/docker-publish.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index f58c42f..a9834fa 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -47,7 +47,6 @@ jobs: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | type=raw,value=latest,enable={{is_default_branch}} - type=sha type=raw,value=schema-${{ steps.vars.outputs.schema }}-extractor-${{ steps.vars.outputs.extractor }}-${{ steps.vars.outputs.date }} labels: | org.opencontainers.image.created=${{ steps.vars.outputs.date }} From 6670d1283ecd8c3e5b1299ad75e4d411f0a7ec56 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Wed, 17 Jun 2026 17:13:47 +0100 Subject: [PATCH 5/6] add arm platform build --- .github/workflows/docker-publish.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index a9834fa..43166c7 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -20,6 +20,9 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -58,6 +61,7 @@ jobs: with: context: . file: ./docker/Dockerfile + platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 0bf8ecd98bc13be4c917f28d45514e9623249b05 Mon Sep 17 00:00:00 2001 From: Jas Kalayan Date: Wed, 17 Jun 2026 21:41:44 +0100 Subject: [PATCH 6/6] update tag names --- .github/workflows/docker-publish.yaml | 5 +++-- docker/Dockerfile | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 43166c7..8ca1645 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -49,8 +49,9 @@ jobs: with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | - type=raw,value=latest,enable={{is_default_branch}} - type=raw,value=schema-${{ steps.vars.outputs.schema }}-extractor-${{ steps.vars.outputs.extractor }}-${{ steps.vars.outputs.date }} + type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} + type=raw,value=${{ steps.vars.outputs.date }}-schema-${{ steps.vars.outputs.schema }}-extractor-${{ steps.vars.outputs.extractor }} + type=ref,event=branch,enable=${{ github.ref != format('refs/heads/{0}', github.event.repository.default_branch) }} labels: | org.opencontainers.image.created=${{ steps.vars.outputs.date }} biosim.schema.version=${{ steps.vars.outputs.schema }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 14fd06e..b0805c3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -56,7 +56,7 @@ ENV DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 RUN apt-get update && apt-get install -y --no-install-recommends \ - python3-minimal \ + python3 \ libgomp1 \ ca-certificates \ && rm -rf /var/lib/apt/lists/* @@ -70,6 +70,7 @@ RUN groupadd -g 10001 biosim && \ biosim WORKDIR /app +RUN chown biosim:biosim /app # Copy the pre-built virtual environment from the builder stage COPY --from=builder --chown=biosim:biosim /venv /venv