From 4a98450a47b813283d337b7a2c52e1e9f8f09457 Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Tue, 3 Feb 2026 19:09:15 +0000 Subject: [PATCH 1/7] Added linux/riscv64 platform and a build-time cargo dependency for the server image. --- server/Dockerfile | 2 ++ server/Dockerfile-alpine | 4 +++- server/Makefile | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/server/Dockerfile b/server/Dockerfile index dd67d71..326d3ba 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -14,6 +14,7 @@ RUN set -ex && \ build-essential \ libffi8 \ libffi-dev \ + cargo \ && \ # Install Python dependencies. pip install --no-cache-dir -r /requirements.txt && \ @@ -21,6 +22,7 @@ RUN set -ex && \ apt-get remove --purge -y \ build-essential \ libffi-dev \ + cargo \ && \ apt-get autoremove -y && \ apt-get clean && \ diff --git a/server/Dockerfile-alpine b/server/Dockerfile-alpine index 05d67d2..0a3e9dd 100644 --- a/server/Dockerfile-alpine +++ b/server/Dockerfile-alpine @@ -10,13 +10,15 @@ RUN apk add --no-cache \ musl-dev \ libffi \ libffi-dev \ + cargo \ && \ pip install --no-cache-dir -r /requirements.txt \ && \ apk del \ gcc \ musl-dev \ - libffi-dev + libffi-dev \ + cargo COPY entrypoint.sh / ENTRYPOINT [ "/entrypoint.sh" ] diff --git a/server/Makefile b/server/Makefile index 2b2094a..25c886c 100644 --- a/server/Makefile +++ b/server/Makefile @@ -11,7 +11,7 @@ build-alpine: Makefile Dockerfile # See link for more info about how these work: # https://github.com/JonasAlfredsson/docker-nginx-certbot/issues/28 dev: Makefile Dockerfile - docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 --tag jonasal/devpi-server:dev -f ./Dockerfile ./ + docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/riscv64 --tag jonasal/devpi-server:dev -f ./Dockerfile ./ dev-alpine: Makefile Dockerfile - docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 --tag jonasal/devpi-server:dev-alpine -f ./Dockerfile-alpine ./ + docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/riscv64 --tag jonasal/devpi-server:dev-alpine -f ./Dockerfile-alpine ./ From f6851a871660860a3ab6cf82b635c60271459b21 Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Tue, 3 Feb 2026 19:09:47 +0000 Subject: [PATCH 2/7] Added linux/riscv64 platform for the client image. --- client/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/Makefile b/client/Makefile index c36c142..911b430 100644 --- a/client/Makefile +++ b/client/Makefile @@ -11,7 +11,7 @@ build-alpine: Makefile Dockerfile # Ssee link for more info about how these work: # https://github.com/JonasAlfredsson/docker-nginx-certbot/issues/28 dev: Makefile Dockerfile - docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 --tag jonasal/devpi-client:dev -f ./Dockerfile ./ + docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/riscv64 --tag jonasal/devpi-client:dev -f ./Dockerfile ./ dev-alpine: Makefile Dockerfile - docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 --tag jonasal/devpi-client:dev-alpine -f ./Dockerfile-alpine ./ + docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/riscv64 --tag jonasal/devpi-client:dev-alpine -f ./Dockerfile-alpine ./ From acd26cf68b9bc476980f277f588410ee021ae976 Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Tue, 3 Feb 2026 19:12:28 +0000 Subject: [PATCH 3/7] Added linux/riscv64 to platforms in GitHub Actions. --- .github/workflows/build_client.yml | 2 ++ .github/workflows/build_server.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/build_client.yml b/.github/workflows/build_client.yml index 09426ef..e8c6b3d 100644 --- a/.github/workflows/build_client.yml +++ b/.github/workflows/build_client.yml @@ -41,6 +41,7 @@ jobs: linux/386 linux/arm64 linux/arm/v7 + linux/riscv64 push: ${{ github.event_name != 'pull_request' }} tags: | jonasal/devpi-client:latest @@ -73,6 +74,7 @@ jobs: linux/386 linux/arm64 linux/arm/v7 + linux/riscv64 push: ${{ github.event_name != 'pull_request' }} tags: | jonasal/devpi-client:latest-alpine diff --git a/.github/workflows/build_server.yml b/.github/workflows/build_server.yml index 3a5101b..d925201 100644 --- a/.github/workflows/build_server.yml +++ b/.github/workflows/build_server.yml @@ -41,6 +41,7 @@ jobs: linux/386 linux/arm64 linux/arm/v7 + linux/riscv64 push: ${{ github.event_name != 'pull_request' }} tags: | jonasal/devpi-server:latest @@ -73,6 +74,7 @@ jobs: linux/386 linux/arm64 linux/arm/v7 + linux/riscv64 push: ${{ github.event_name != 'pull_request' }} tags: | jonasal/devpi-server:latest-alpine From 2c6d1d14d17aabfb798b802727615f8cc8b52e74 Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Tue, 3 Feb 2026 23:04:39 +0000 Subject: [PATCH 4/7] Added libgcc runtime dependency to server/Dockerfile-alpine . This fixes "Error loading shared library libgcc_s.so.1: No such file or directory" encountered when running the alpine image on riscv64 (and potentially other architectures where nh3 package must be build from sources). --- server/Dockerfile-alpine | 1 + 1 file changed, 1 insertion(+) diff --git a/server/Dockerfile-alpine b/server/Dockerfile-alpine index 0a3e9dd..3ab449a 100644 --- a/server/Dockerfile-alpine +++ b/server/Dockerfile-alpine @@ -11,6 +11,7 @@ RUN apk add --no-cache \ libffi \ libffi-dev \ cargo \ + libgcc \ && \ pip install --no-cache-dir -r /requirements.txt \ && \ From 3fd53efd530defa5c21a0b44b26cd8b31f7999e5 Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Thu, 5 Feb 2026 22:25:35 +0000 Subject: [PATCH 5/7] /root/.cache is now cleaned up in server/Dockerfile-alpine . --- server/Dockerfile-alpine | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/Dockerfile-alpine b/server/Dockerfile-alpine index 3ab449a..b3b6106 100644 --- a/server/Dockerfile-alpine +++ b/server/Dockerfile-alpine @@ -19,7 +19,9 @@ RUN apk add --no-cache \ gcc \ musl-dev \ libffi-dev \ - cargo + cargo \ + && \ + rm -rf /root/.cache COPY entrypoint.sh / ENTRYPOINT [ "/entrypoint.sh" ] From cb5225c44459399293135e4d38ad5157d1ad0d57 Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Thu, 5 Feb 2026 22:44:55 +0000 Subject: [PATCH 6/7] Increased timeout-minutes to 30 for both jobs in build_client.yml . --- .github/workflows/build_client.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_client.yml b/.github/workflows/build_client.yml index e8c6b3d..f2fc213 100644 --- a/.github/workflows/build_client.yml +++ b/.github/workflows/build_client.yml @@ -19,7 +19,7 @@ on: jobs: docker_buildx_debian: runs-on: ubuntu-latest - timeout-minutes: 15 + timeout-minutes: 30 steps: - name: Perform setup steps uses: JonasAlfredsson/checkout-qemu-buildx@v2 @@ -52,7 +52,7 @@ jobs: docker_buildx_alpine: runs-on: ubuntu-latest - timeout-minutes: 15 + timeout-minutes: 30 steps: - name: Perform setup steps uses: JonasAlfredsson/checkout-qemu-buildx@v2 From 6c576f36e5e3633524ba9ce0c5d1e68cfdcaa09d Mon Sep 17 00:00:00 2001 From: Taras Denysenko Date: Thu, 5 Feb 2026 22:46:47 +0000 Subject: [PATCH 7/7] Increased timeout-minutes to 120 for docker_buildx_debian and to 240 for docker_buildx_alpine in build_server.yml . --- .github/workflows/build_server.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_server.yml b/.github/workflows/build_server.yml index d925201..6868d76 100644 --- a/.github/workflows/build_server.yml +++ b/.github/workflows/build_server.yml @@ -19,7 +19,7 @@ on: jobs: docker_buildx_debian: runs-on: ubuntu-latest - timeout-minutes: 40 + timeout-minutes: 120 steps: - name: Perform setup steps uses: JonasAlfredsson/checkout-qemu-buildx@v2 @@ -52,7 +52,7 @@ jobs: docker_buildx_alpine: runs-on: ubuntu-latest - timeout-minutes: 40 + timeout-minutes: 240 steps: - name: Perform setup steps uses: JonasAlfredsson/checkout-qemu-buildx@v2