-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Feat 465 add ARM support #726
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
Conversation
Update docker-compose.yml
ARM Support Update Seems like we've managed to solve 99% of all open issues. The only thing still failing right now is the test for executing a Deno cloud function. Seems like the Deno Docker image lacks ARM support: denoland/deno_docker#100 |
Sorry, something went wrong.
Thank you for all the hard work here, @eldadfux . Are there instructions for building the ARM64 image to launch locally while we wait for Deno Docker support? |
@mlucas-NU building the repo from source should do the trick (from the ARM branch). You can learn how here: You can also see how to push to Docker hub here: We also decided not to wait for Deno or Dart (just added it 😁). We've added a new architecture detection phase and we enable only cloud functions envs, that are supported to your specific hardware. Here is a spoiler from the new docs: |
Looks fantastic. I was able to get a local container running off of this branch. Four of the upstream appwrite docker images are not arm64-compatible yet, so here are the steps I took in case it helps anyone: 1. Build local arm64 docker images
Repeat the same process for each project in {smtp, mariadb, clamav, telegraf}. The latest appwrite images don't support ARM64 architectures yet and will crash repeatedly on startup.
Running
2. Start a new appwrite project.Create a new directory and download appwrite's docker-compose template.
3. Update
|
feat(tests): add architecture detection
I made some arm64 migration notes for appwrite 0.6.3 -> 0.7.0 Warnings:
1. Shut down previous instanceIf you are still running the previous version of appwrite, shut it down by running 2. Get the new docker-compose templateI'm working from a docker-compose.yml template for appwrite v0.7 shared by @eldadfux here: https://gist.github.com/eldadfux/977869ff6bdd7312adfd4e629ee15cc5
3. Build arm64-compatible docker imagesYou can save this as a shell script in your project directory to build images. Otherwise, I posted a manual version of these instructions in a previous comment that provide more detail. The general idea is that I've identified the list of appwrite projects that don't have arm64-compatible images available. This script pulls the master branch for each project, builds its docker image with build_arm64.sh WORKDIR=.arm64_builds
CLEANUP=true # Delete $WORKDIR at the end of the script -- built docker images will remain locally
mkdir -p $WORKDIR
cd $WORKDIR
git clone git@github.com:appwrite/appwrite.git appwrite
(cd appwrite && docker buildx build --platform linux/arm64 -t appwrite/appwrite_arm64:latest . )
for project in smtp telegraf; do
git clone git@github.com:appwrite/docker-$project.git $project
(cd $project && docker buildx build --platform linux/arm64 -t appwrite/${project}_arm64:latest . )
done
if [ $CLEANUP ] then
rm -r $WORKDIR
fi 4. Modify docker-compose.yml
5. Start your appwrite 0.7.0 server upAfter running Optionally, watch pretty logs with 5. Run the appwrite migration toolThe Appwrite docs suggests using the migration tool. Let's see what it does!! $ docker-compose exec appwrite migrate
Starting Data Migration
Migrating project: Appwrite (console)
Migrating: 0 / 8
Fetched 1/1 projects...
Migrating project: TestProject (601908fabaeb8)
Migrating: 0 / 29
Data Migration Completed It didn't seem to change any behavior on the server, but maybe it did something nice behind the scenes. |
…t-465-add-arm-support
…e/appwrite into feat-465-add-arm-support
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.
@eldadfux Have run the CI multiple times now 👍🏻
This is ready for more review and merge 🎉
This was one of our greatest ever community effort! Big KUDOS to everyone who helped, I'm proud to finally merge it and confirm it will be part of the next Appwrite release. |
What does this PR do?
Adding ARM support for all Appwrite Docker images. This will also enable support for Raspberry PI.
Test Plan
Added support for multicore tests on Travis CI.
Related PRs and Issues
#465
Have you read the Contributing Guidelines on issues?
Yes.