-
Notifications
You must be signed in to change notification settings - Fork 532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support more platforms in orangeopensource/hurl Docker image #536
Comments
Hi @humphd thanks for your feedback! We've added a new Docker arm64 flavour image in https://hub.docker.com/r/orangeopensource/hurl. Thanks again, jc |
Thanks for working on this, it's appreciated. I tested and on my M1 I still have some issues: docker run --rm orangeopensource/hurl:latest --version
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
hurl 1.6.1 libcurl/7.81.0-DEV OpenSSL/1.1.1n zlib/1.2.12 I tried specifying the docker run --rm --platform=linux/arm64 orangeopensource/hurl:latest --version
Unable to find image 'orangeopensource/hurl:latest' locally
latest: Pulling from orangeopensource/hurl
9981e73032c8: Already exists
a1012993103d: Pull complete
b6b3660027ca: Pull complete
980ab9760d29: Pull complete
d65f4a13f51d: Pull complete
Digest: sha256:ee558443639c3863dd1e12ff58c8c330e0a3214d2841d46a972eeb082e5a30ce
Status: Downloaded newer image for orangeopensource/hurl:latest
qemu-x86_64: Could not open '/lib/ld-musl-x86_64.so.1': No such file or directory And for the more specific one, which I have: docker run --rm --platform=linux/arm64/v8 orangeopensource/hurl:latest --version
qemu-x86_64: Could not open '/lib/ld-musl-x86_64.so.1': No such file or directory |
Ok I’ll try to build and test it on an M1 to see if we can solve it! |
I guys, here are the steps I followed (on ubuntu22): Dockerfile:
Buildx prerequisites:
Buildx/push command:
I get 3 parallel builds as expected: When I inspect pushed manifests I get 3 platforms as expected:
|
I've secured a MBP M1 🎉, so we'll able to test and fix this issue soon (normally)! |
I also just got a pi4 😄 |
+1 I'd like to be able to use this on an amazon linux container running on arm |
@lepapareil more info on "Multi-platform images" on Docker doc https://docs.docker.com/build/building/multi-platform/ |
I was so excited to use Hurl for a new project, but I also need ARM64 linux support... 🙁 Is this something you are planning on adding? edit: I am also experimenting with running edit 2: I managed to get it running on AWS Lambda with a non-AWS base image ( |
+1 to arm64 and lInux, which you need for Docker on Mac with Apple Silicon. I've had students run into this during the term trying to dockerize hurl and run in development on their macs. |
Hi @humphd, I created a manifest with
If the test is ok, we will be able to deliver this new |
Amazing, thank you for doing this! Here are my test results:
I get this: docker run ghcr.io/lepapareil/hurl:latest --version
Unable to find image 'ghcr.io/lepapareil/hurl:latest' locally
latest: Pulling from lepapareil/hurl
4060ece20d7a: Pull complete
b4ad028b61cb: Pull complete
86ea65e843f8: Pull complete
54ef6aa33a32: Pull complete
438cea9a9c66: Pull complete
f3342e23185c: Pull complete
f6dfcddfc8ef: Pull complete
ace20a5a2b9e: Pull complete
789420c3c536: Pull complete
1180e5add458: Pull complete
Digest: sha256:20fe7a2297e100af6f0bf23980538fded42121b5bb2ab2bc4d97a6372412592e
Status: Downloaded newer image for ghcr.io/lepapareil/hurl:latest
hurl 4.0.0 libcurl/8.2.1 OpenSSL/3.0.10 zlib/1.2.13 brotli/1.0.3840 nghttp2/1.51.0
Features (libcurl): alt-svc AsynchDNS brotli HSTS HTTP2 IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
Features (built-in): brotli
I get this: ❯ echo -e "GET https://hurl.dev\n\nHTTP 201" > /tmp/test.hurl
~
❯ docker run --rm -v /tmp/test.hurl:/tmp/test.hurl ghcr.io/lepapareil/hurl:latest --test --color /tmp/test.hurl
/tmp/test.hurl: Running [1/1]
error: Assert status code
--> /tmp/test.hurl:3:6
|
3 | HTTP 201
| ^^^ actual value is <200>
|
/tmp/test.hurl: Failure (1 request(s) in 794 ms)
--------------------------------------------------------------------------------
Executed files: 1
Succeeded files: 0 (0.0%)
Failed files: 1 (100.0%)
Duration: 800 ms |
What a speedy response @humphd 😄. |
This is good but doesn't actually address my needs. I already have an docker image but not one which includes the rust toolchain which I'd need to build the hurl project to create a binary that I could run inside of it. Would it be possible to build a rust binary for arm that I could run on linux downloadable the same way the osx arm binary is available? |
@softprops perhaps I'm misunderstanding you, but the image I just tested is
Or do you mean separate from Docker? |
Hi @softprops, and thks for your support 😄 Yet, having an arm64 linux binary would be great, we have to talk about this with our team members to see how we can achieve this. Maybe it would be better to open a new issue and avoid mixing the two subjects (arm64 linux binary vs docker arm64 alpine image) ? |
@lepapareil agree. here's the separate issue for tracking #1873 |
We'll close this issue in the next releasing. |
Hi @softprops and @lambrospetrou, in response to #536 (comment) and #536 (comment), as AWS Lambda provided.al2 arm64 docker image is based on Redhat (rpm), you can use a workaround by compiling hurl as follows:
|
Hi @humphd, |
Works for me on MBP M1! $ docker run ghcr.io/orange-opensource/hurl:4.1.0 --version
Unable to find image 'ghcr.io/orange-opensource/hurl:4.1.0' locally
4.1.0: Pulling from orange-opensource/hurl
4060ece20d7a: Already exists
4e6a97226f29: Pull complete
fd153139bc5f: Pull complete
0216544b570f: Pull complete
96af6cf31ad0: Pull complete
ac5d11963607: Pull complete
a1d994f77046: Pull complete
adb0281e5b5c: Pull complete
74de53deaa62: Pull complete
dc6305bada08: Pull complete
Digest: sha256:a9344f706f4581e2eb5361a37d861dbb1d4d51deefa9838025f6fba69c4981b6
Status: Downloaded newer image for ghcr.io/orange-opensource/hurl:4.1.0
hurl 4.1.0 (aarch64-alpine-linux-musl) libcurl/8.2.1 OpenSSL/3.0.10 zlib/1.2.13 brotli/1.0.3840 nghttp2/1.51.0
Features (libcurl): alt-svc AsynchDNS brotli HSTS HTTP2 IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
Features (built-in): brotli |
Also works on ARM64 servers from Hetzner :) Thanks for enabling this!!!
|
Tested locally, works great. Thank you so much for this! |
I'm using hurl on an M1 Mac, and using the Docker image assumes I'm on
amd64
:I can get around it by explicitly opting into the
amd64
arch:But it would be great if the image was built for more
--platform
s, especiallylinux/arm64/v8
. I don't know about the Rust part, but doing this in the Dockerfile is a matter of:Then when you build using
buildx
, you can specify your platform(s), see https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images. Your base images (alpine) already do this, so it will just work.Automating this in CI would look something like:
This could be done on every
release
ortag
event.The text was updated successfully, but these errors were encountered: