siomiz / SoftEtherVPN

A Docker Automated Build Repository for SoftEther VPN
https://hub.docker.com/r/siomiz/softethervpn/
MIT License
454 stars 174 forks source link

linux/arm/v8 platform not supported #96

Closed SinaYa closed 1 year ago

SinaYa commented 2 years ago

I'm trying to run the docker image using this command: docker run --name --platform linux/arm/v8 vpnconf -e SPW=<password> -e HPW=<password> siomiz/softethervpn echo

and I get this error: docker: Error response from daemon: pull access denied for linux/arm/v8, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

paskal commented 2 years ago

Fix as of now:

git clone git@github.com:siomiz/SoftEtherVPN.git
cd SoftEtherVPN
docker build -t siomiz/softethervpn:alpine -f Dockerfile.alpine .

siomiz, would you be so kind as to enable multi-arch builds for DockerHub so the arm64 image would be available to everyone?

siomiz commented 2 years ago

Ok, I think I did the manifest thing right... siomiz/softethervpn:latest and siomiz/softethervpn:alpine have linux/arm64/v8 now. (I'm assuming there is no such thing as linux/arm/v8?)

paskal commented 2 years ago

It works alright, thank you!

image
paskal commented 2 years ago
image

Actually, judging by my other image built using docker buildx, I think there should be no /v8 part in, so your latest should have the same image as latest-arm64 has currently, with the same arch.

siomiz commented 2 years ago

Thank you for confirming! I kinda cheated by building the arm64(/v8) image on an actual ARMv8 device, a Raspberry Pi 4B using 64-bit RasPi OS. Built and pushed the :arm64-latest image, and created a new manifest for :latest + --amend and that somehow added the /v8 variant tag. Interesting spec...

paskal commented 2 years ago

You can build both architectures on amd64 Linux by issuing the following command: docker buildx build --pull --platform linux/arm64,linux/amd64 -t siomiz/softethervpn:latest --push ., and if it works as expected - include it into the CI pipeline. Here is documentation.

maltegrosse commented 1 year ago

Can you add armv7 too? you can extend your github workflow by adding buildx: https://github.com/maltegrosse/keycloak-multiarch/blob/main/.github/workflows/container.yml#L36

and later add platforms: linux/amd64,linux/arm64,linux/arm

siomiz commented 1 year ago

Thanks everyone, finally figured out how workflow works with docker buildx...

 docker buildx imagetools inspect siomiz/softethervpn:latest
Name:      docker.io/siomiz/softethervpn:latest
MediaType: application/vnd.docker.distribution.manifest.list.v2+json
Digest:    sha256:ef0281300b33adf4daa30829d5e8df2505b678605712b3d50c34ed4308d8e121

Manifests: 
  Name:      docker.io/siomiz/softethervpn:latest@sha256:8bc51c8c6720bf4d4e48d8db49a389edf8ff09c34c6aaf732c57b93424c54313
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/amd64

  Name:      docker.io/siomiz/softethervpn:latest@sha256:62814df0dc7f323306990dc810557f138e21c73a2027220169d014c2baa13430
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/arm64

  Name:      docker.io/siomiz/softethervpn:latest@sha256:ba9ec8ecb87d33c9f0b591aae036e7001ea181002c8a5aedac35c7307474a1ed
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/arm/v7