-
-
Notifications
You must be signed in to change notification settings - Fork 607
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
Reorganize Makefile to build ARM binaries for ddev and stop using build-tools, fixes #2507, for #2338, fixes #2322 #2474
Conversation
Artifacts from first successful build are at https://app.circleci.com/pipelines/github/drud/ddev/2658/workflows/787666d9-925e-45a0-b8ff-e0897de7a97b/jobs/27164/artifacts |
Probably the best path forward for now, especially this week is to manually build versions of this. You can set the images+tags used in pkg/version/version.go, and that's the only way to change ddev-ssh-agent and ddev-router. Build ddev binaries with |
I updated this to temporarily use @dennisameling 's images in version.go, so it will start to work (without db container at this point). Artifacts are at https://app.circleci.com/pipelines/github/drud/ddev/2683/workflows/ce711e0e-e277-41d0-ac43-ba94bc27216e/jobs/27268/artifacts |
https://twitter.com/randyfay/status/1300570109166010368 - It's WORKING! |
@dennisameling one thing I note that I hope won't discourage you. windows/arm64 is not listed as a target in Also, https://build.golang.org/ does not show windows/arm as a currently built version. golang/go#26148 (comment) questions whether it has been abandoned, with no response. Important resources for building:
|
77032df
to
d927e45
Compare
124ae50
to
75333e2
Compare
@rfay I don't think a DDEV executable for Windows arm64 should be a priority right now, as I expect most users to be working in WSL2 which uses arm64 Linux executables anyway. Windows arm64 can also run 32-bit applications, so if we could somehow get a x86 or ARM32 executable, that'd suffice for now :) |
Ah, glad to hear it! Thanks @dennisameling |
7954c25
to
b54b46a
Compare
@dennisameling I think all the boxes are checked now. In some ways it's better than it's ever been, but in other ways it has so far to go. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have the feeling that windows-arm
won't work (at least it didn't work with mkcert, application crashed). Could we do windows-386
(32-bit) for the time being until go supports arm64? 32-bit works through emulation on Windows arm64 :)
.circleci/generate_artifacts.sh
Outdated
cp ddev_windows_installer*.exe $ARTIFACTS | ||
# generate windows-arm tarball/zipball | ||
pushd $BASE_DIR/.gotmp/bin/windows_arm | ||
curl -sSL -o mkcert.exe https://github.com/drud/mkcert/releases/download/${MKCERT_VERSION}/mkcert-${MKCERT_VERSION}-windows-arm.exe |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
windows-arm
is not part of the 1.4.4 release: https://github.com/drud/mkcert/releases. I tried with windows-arm
but it doesn't seem to work on arm64. i386 (32-bit) does work however (32-bit emulation on arm64). So please:
- Update mkcert version to v1.4.6 (just released)
- use
-windows-386.exe
on windows-arm :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So you want windows/386 (See go tool dist list
) ? I wonder if that will work without building 32-bit versions of the images? It may not be worth fighting this, of course. I was hoping that the windows-arm would work on your machine.
I agree about pull windows/arm out of there. But do you think it's useful to have windows/i386?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would be windows/386 indeed. Thing is, Windows arm64 doesn't even have the ability to run Docker Desktop (docker/roadmap#91), so it's actually a waste of effort for now. Users of Windows arm64 will need to be doing everything from within WSL2, so they'll be using DDEV Linux arm64 binaries in that case. Let's just remove windows_arm and reconsider in a few months 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I guess I didn't understand how you're running docker on your surface device. You must be running Linux docker inside WSL2?
I've removed windows/arm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, correct :) no other way to run Docker currently on arm64 Windows devices 😊
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I sure hear another blog post coming! :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haha, so much to blog about after this whole experience! Def will write something soon 🚀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may want to collaborate on a single blog that explains windows/arm64, linux/arm64, raspberry pi/arm64, raspberry pi/arm. /cc @ekl1773
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes sounds good!
3ee7bb2
to
85977a6
Compare
Doggone it @dennisameling I just now discovered that the library/mariadb upstream images have no arm/v7 builds. |
4f5d42a
to
fd07082
Compare
That's a shame regarding MariaDB :( hope they'll add such image soon! |
The Problem/Issue/Bug:
This builds linux_amd64, linux_arm, windows_arm.
We can't build darwin_arm64 yet, and windows_arm64 is not on the tool list. (
go tool dist list
)See checklist in #2507
How this PR Solves The Problem:
Manual Testing Instructions:
Automated Testing Overview:
Related Issue Link(s):
Release/Deployment notes: