Repository: static-web-server/static-web-server (language: rust)

Issue:
s590x and ppc64le Docker images are missing dependencies
### Search for duplicate issues

- [X] I already searched, and this issue is not a duplicate.

### Issue scope

Docker / Kubernetes

### Describe the bug

The s590x and ppc64le images are missing dependencies that prevent SWS from running on those platforms

### How to reproduce it

```
$ docker run --rm --platform linux/ppc64le joseluisq/static-web-server --version
ppc64le-binfmt-P: Could not open '/lib64/ld64.so.2': No such file or directory
```
```
$ docker run --rm --platform linux/s390x joseluisq/static-web-server --version
s390x-binfmt-P: Could not open '/lib/ld64.so.1': No such file or directory
````
it works withe all the other platforms
```
$ dk run --rm --platform linux/arm64 joseluisq/static-web-server --version
static-web-server 2.25.0
```

### Expected behavior

well, SWS should work with those platforms

### Complementary information

To give some context, I'm not actually using those platforms. I was looking at some rust projects that I know to find out how they are dealing with multiplatform images, and was surprised that SWS could work with scratch images for non musl targets.

cross don't support the musl targets for those platforms, so I ended up using a different base image for those two platforms in my project: https://github.com/glehmann/yage/blob/1ce059f1bd192a4dbf31a25681f225e509c8a9d7/Earthfile#L69

This is not ideal though as those images are much bigger than the others, and not iso functional.

I've also added a check to make sure the images are actually able to run: https://github.com/glehmann/yage/blob/80e364a083ed31ef250c3396d24585c6c6b0eee7/.github/workflows/docker.yml#L52 . It might be a good idea to have something similar is SWS :-)

### Build target

Docker linux/s390x

### Environment and specs

- [x] **static-web-server:** 2.2.25
- [x] **OS:** ubuntu 23.10
- [x] **Arch:** s590x and ppc64le
- [x] **Docker:** 24.0.5


### Additional context

_No response_


Discussion / hints:
@glehmann good catch!
Yes, The SWS binaries for ppc64le (`powerpc64le-unknown-linux-gnu`) and s590x (`s390x-unknown-linux-gnu`) are dynamically linked so it does **not** make so much sense to deliver them with either the Alpine (musl) or the Scratch images (unless they were statically linked, of course).
However, SWS binaries can still be delivered with other Docker images like Debian (glibc).

So what I can suggest is to remove those two (`linux/ppc64le` and `linux/s390x`) from the SWS Alpine and Scratch variants to avoid misunderstanding or future issues and encourage users of those platforms to use the Debian variant instead.
I will take care of this directly.

> I've also added a check to make sure the images are actually able to run: https://github.com/glehmann/yage/blob/80e364a083ed31ef250c3396d24585c6c6b0eee7/.github/workflows/docker.yml#L52 . It might be a good idea to have something similar is SWS :-)

Sure, we have a [docker ci workflow](https://github.com/static-web-server/static-web-server/blob/master/.github/workflows/devel.docker.yml) that could be adjusted so feel free to suggest something.

Fix patch:
diff --git a/.github/workflows/devel.docker.yml b/.github/workflows/devel.docker.yml
index 15afc99b..73c6989d 100644
--- a/.github/workflows/devel.docker.yml
+++ b/.github/workflows/devel.docker.yml
@@ -29,8 +29,6 @@ jobs:
           - linux/arm64
           - linux/arm/v7
           - linux/arm/v6
-          - linux/ppc64le
-          - linux/s390x
     runs-on: ubuntu-22.04
     services:
       registry:
diff --git a/.github/workflows/release.docker.yml b/.github/workflows/release.docker.yml
index 9d0a7788..47a02a4e 100644
--- a/.github/workflows/release.docker.yml
+++ b/.github/workflows/release.docker.yml
@@ -59,7 +59,7 @@ jobs:
         with:
           push: true
           context: .
-          platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x
+          platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6
           file: ./docker/alpine/Dockerfile
           tags: ${{ steps.meta_alpine.outputs.tags }}
           build-args: |
@@ -177,7 +177,7 @@ jobs:
         with:
           push: true
           context: .
-          platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x
+          platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6
           file: ./docker/scratch/Dockerfile
           tags: ${{ steps.meta_scratch.outputs.tags }}
           build-args: |
diff --git a/docker/alpine/Dockerfile b/docker/alpine/Dockerfile
index 998b7042..e7a3dfb3 100644
--- a/docker/alpine/Dockerfile
+++ b/docker/alpine/Dockerfile
@@ -13,8 +13,6 @@ RUN set -ex; \
         "linux/386") target='i686-unknown-linux-musl' ;; \
         "linux/arm/v7") target='armv7-unknown-linux-musleabihf' ;; \
         "linux/arm/v6") target='arm-unknown-linux-musleabihf' ;; \
-        "linux/ppc64le") target='powerpc64le-unknown-linux-gnu' ;; \
-        "linux/s390x") target='s390x-unknown-linux-gnu' ;; \
         *) echo >&2 "error: unsupported $TARGETPLATFORM architecture"; exit 1 ;; \
     esac; \
     wget --quiet -O /tmp/static-web-server.tar.gz "https://github.com/static-web-server/static-web-server/releases/download/v${SERVER_VERSION}/static-web-server-v${SERVER_VERSION}-${target}.tar.gz"; \
@@ -27,14 +25,8 @@ RUN set -ex \
     && echo "Testing Docker image..." \
     && uname -a \
     && cat /etc/os-release \
-    && case "$TARGETPLATFORM" in \
-        **ppc64*|*s390x*) \
-            echo "warn: can not run sws binary on $TARGETPLATFORM architecture" ;; \
-        *) \
-            static-web-server --version; \
-            static-web-server --help; \
-        ;; \
-    esac \
+    && static-web-server --version \
+    && static-web-server --help \
     && file /usr/local/bin/static-web-server \
     && true
 
diff --git a/docs/content/features/docker.md b/docs/content/features/docker.md
index d4eb0da1..aa42b410 100644
--- a/docs/content/features/docker.md
+++ b/docs/content/features/docker.md
@@ -15,8 +15,8 @@ All Docker images are [Multi-Arch](https://www.docker.com/blog/how-to-rapidly-bu
 - `linux/arm/v6`
 - `linux/arm/v7`
 - `linux/arm64`
-- `linux/ppc64le`
-- `linux/s390x`
+- `linux/ppc64le` (Debian only)
+- `linux/s390x` (Debian only)
 
 !!! tip "SWS statically-linked binary"
     All the Docker images use the SWS statically-linked binary, meaning that the binary is highly optimized, performant, and dependency-free thanks to [musl libc](https://www.musl-libc.org/).


Test patch: