-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[Request] Include Release & Docker build for Raspberry Pi (ARMv6/7 Architecture) #16
Comments
Totally in agreement, we should add this. If anyone wants to pick this up feel free! |
v8 too please. I've switched almost entirely to aarch64. |
I'm in for this. Let me know. |
I've added the armv6 and arm64 build lines to the Building arm or arm64 images on an amd64 host is slightly more complicated as the build machine needs to have qemu-user-static to cross compile if we follow someone like Flannel's build process. An alternative is GoReleaser which seems to produce multiple docker images for each arch easily and should require the same build steps no matter what arch the building host is. I'd like to run oauth2_proxy on my multi-arch kubernetes cluster so I can have a go at a PR depending on what way we want to go. |
I'd personally be tempted to go for the Flannel approach and have separate Dockerfiles for the arm builds. I'd be tempted to leave the amd64 Dockerfile just as What was the reason for choosing |
I couldn't comment whether it's better to build for v7 or v6. Sounds good to leave amd64 Dockerfile as is. Docker image building:
|
As far as I know, only the rpi zero and origional rpi are armv6 and pretty much everything else is v7 these days. |
Thanks for merging binaries! Do we want to keep this issue open for tracking the second part; arm docker images? |
So I don't think the dep thing is a problem. The Dockerfiles we want in the repo are for building releases and pushing to Quay right? People won't be building Dockerfiles on their arm machines So given we use multi stage builds, we can make our first stage of that amd64 (as it is now) and then just copy the arm binary into an arm based base image for distribution Have I missed something? |
Okay. Regarding your suggestion about copying in an arm binary, I tried just that by modifying a Dockerfile and building on my amd64 laptop however the end Docker image ends up showing
If try setting the second image to So.... I will have a go at the qemu stuff to get us building arm docker images on amd64. :) |
Have a look at this pr that the helm folks are working on. I think its based on how k8s cross compiles and builds the images: It might be helpful. |
Thanks for the link, matches my recent learnings. Similar approach to flannel. Will have a go at it soon. |
I think this can be closed by #39, can those interested double check? |
On path to close golang#1807 on [oauth2_proxy arm support](oauth2-proxy/oauth2-proxy#16) Tested: - Building armv6 and arm64 binaries on amd64 - Running arm binaries - Using armv6 binary on RPi 3B to build another project [oauth2_proxy](https://github.com/kskewes/oauth2_proxy/tree/build) (`dep ensure`) Not verified: - Install script completes as binaries not published, looks okay though. - `hack/test.bash` - must have missed something. armv6 (RPi 3B): ``` karl@pi1:~/go/src/github.com/pusher/oauth2_proxy $ dep version dep: version : v0.5.0-31-g73b3afef-dirty build date : 2019-02-01 git hash : 73b3afe go version : go1.11.5 go compiler : gc platform : linux/arm features : ImportDuringSolve=false karl@pi1:~/go/src/github.com/pusher/oauth2_proxy $ make dep dep ensure --vendor-only karl@pi1:~/go/src/github.com/pusher/oauth2_proxy $ uname -m armv7l karl@pi1:~ $ ./install.sh ARCH = arm OS = linux Will install into /home/karl/go/bin Fetching https://github.com/golang/dep/releases/latest.. Release Tag = v0.5.0 Fetching https://github.com/golang/dep/releases/tag/v0.5.0.. Fetching https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-arm.. Request failed with code 404 karl@pi1:~ $ ./test.bash go test: -race is only supported on linux/amd64, linux/ppc64le, freebsd/amd64, netbsd/amd64, darwin/amd64 and windows/amd64 ``` arm64 (Rock64): ``` rock64@k8s-w-01:~$ ./dep-linux-arm64 version dep: version : v0.5.0-31-g73b3afef-dirty build date : 2019-02-01 git hash : 73b3afe go version : go1.11.5 go compiler : gc platform : linux/arm64 features : ImportDuringSolve=false rock64@k8s-w-01:~$ uname -m aarch64 rock64@k8s-w-01:~$ ./install.sh ARCH = arm64 OS = linux Will install into /home/rock64/go/bin Fetching https://github.com/golang/dep/releases/latest.. Release Tag = v0.5.0 Fetching https://github.com/golang/dep/releases/tag/v0.5.0.. Fetching https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-arm64.. Request failed with code 404 ```
Update dev-wjau.yaml
Not a bug. This is a general feature request to include an Arm version of the Docker build (via Travis-CI).
I was able to build the image myself successfully using the steps in this Gist (leaving here for anyone else who might want to reference), but it would be nice to have a pre-built Docker image for running on a Raspberry Pi.
Thanks!
The text was updated successfully, but these errors were encountered: