swagger-ui icon indicating copy to clipboard operation
swagger-ui copied to clipboard

arm64 docker container

Open alexolivier opened this issue 3 years ago • 1 comments

Content & configuration

Currently, the distributed containers are amd64 only and fail on:

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/40-swagger-ui.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/08/15 12:52:47 [emerg] 136#136: io_setup() failed (38: Function not implemented)

Is your feature request related to a problem?

Publish an arm64 image.

alexolivier avatar Aug 15 '22 13:08 alexolivier

Any update on that one ? arm64 image would be so nice when deploying swagger-ui in a local (Mac M1) Kubernetes cluster.

lucj avatar Sep 07 '22 10:09 lucj

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

Can we get a Arm64 docker image?

tobiashochguertel avatar Nov 30 '22 16:11 tobiashochguertel

Hi guys,

Does anyone knows if there is any progress or alternatives?

zhitomir-oreshenski-mm avatar Apr 11 '23 10:04 zhitomir-oreshenski-mm

We are also running into this issue. Published ARM images would be very nice.

gtowne avatar Apr 24 '23 18:04 gtowne

As I can see the base image https://hub.docker.com/_/nginx/tags?page=1&name=1.23.4-alpine is built for 3 different cpu architectures. So maybe just enabling image build for all archs will solve this issue?

viktorsteinwand avatar May 05 '23 15:05 viktorsteinwand

same for us, last image not available on arm64 and blocking migration to get rid of the expensive amd64 architecture.

qeepcologne avatar May 09 '23 13:05 qeepcologne

However there is the following workaround in place - Clone this repository on M1/M2 Mac and just build it by your own by choosing the same image name and tag:

git clone [email protected]:swagger-api/swagger-ui.git
cd swagger-ui
docker build --tag swaggerapi/swagger-ui:latest .

viktorsteinwand avatar May 09 '23 19:05 viktorsteinwand

Related to #5815

pplmx avatar May 31 '23 08:05 pplmx

In case this can help, I've just built amd64 / arm64 images for the last couple of versions of the v3 and v4 families. The images are in lucj/swagger-ui. Do not hesitate to tell me if there are working fine. I'll make sure to automate the process and have a new image created after each new official swagger-ui release. That's a pity a little hack has not been done before on the official repo with a GitHub Action for instance :( Example of a sample Github action I use to build multiarch images for a little project ArgoCD Helmfile Plugin

lucj avatar May 31 '23 08:05 lucj

The docker-build-push.yml workflow builds and pushes the image for arm64 already, and from v5 and up arm64 is supported for most versions.

It's pretty trippy, but the latest version (as of right now) is only built for amd64. I think this is because the amd64 image is built on Jenkins, and the other platforms are built on GHA later (via workflow_dispatch or repository_dispatch) - see comments on https://github.com/swagger-api/swagger-ui/issues/5815

Basically, don't use the latest tag! As of right now, v5.1.3 works for me.

docker pull swaggerapi/swagger-ui:v5.1.3

joshuanianji avatar Jul 26 '23 18:07 joshuanianji

Hi everybody,

The docker-build-push.yml workflow builds and pushes the image for arm64 already, and from v5 and up arm64 is supported for most versions.

This is right. As of SwaggerUI@5, the swagger-ui docker image comes with full multi platform images. All the platforms that nginx:1.x.y-alpine supports, swagger-ui image support as well.

It's pretty trippy, but the latest version (as of right now) is only built for amd64. I think this is because the amd64 image is built on Jenkins, and the other platforms are built on GHA later (via workflow_dispatch or repository_dispatch) - see comments on https://github.com/swagger-api/swagger-ui/issues/5815

Yes, it works exactly like that. Until we migrate from Jenkins entirely, Jenkins builds the amd64 and after Jenkins CICD pipeline is done, GitHub Action is triggered to append all the other platforms. Currently triggering the GitHub Action is manual, until https://github.com/swagger-api/swagger-ui/issues/8919 is implemented.

Basically, don't use the latest tag! As of right now, v5.1.3 works for me.

v5.1.3 has multi platform support as well.


Overall, the multi platform support is fully there for SwaggerUI@5. We just don't provide multi platform images for unstable tag.

char0n avatar Aug 08 '23 14:08 char0n