-
-
Notifications
You must be signed in to change notification settings - Fork 542
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
The Great Armification #2688
Comments
@dustinleblanc so the lando binary/installer obviously is going to need to be ARM ready. Luckily i dont think that will be a considerable challenge. We should take some time to think about the docker image part of this though. It does not appear that bitnami intends to support ARM variants of their images. That is a problem. All the official docker images support ARM though. In my mind this could be a good opportunity to reimagine how we do a lot of our core services so that we
We could also consider ARM support just being a V4 thing use it as a forcing function both for us and the user to switch. |
Agreed on all of the above. When my new machine shows up, first thing I am going to see is if new Apple fanciness can load the x86 docker magic via the universal binary / rosetta 2 business. If that does work for some reason, that will definitely give us more wiggle room |
I'm one of those interested in an ARM port. I naively tried to install Lando on a RPI a couple of months ago (Lando documentation did not explain yet that it was x86 only). I know it seems a bit crazy to use a RPI for this but don't forget that the raspberry pi now offers RPI4 models with 8GB (NOT the Raspberry pi 400, unfortunately) , which can be enough in some cases especially if you develop headless, RESTful web services of some sort. Not the main use case, I know, but if Lando is ported to a multi-arch build everybody is winning: Apple Silicon users, RPI users etc. Good luck! |
“We’ll be following your career with great interest.” |
@dustinleblanc - about 2 weeks ago my machine arrived. The docker tech preview from a little over a week ago is easy to install and run. At a glance, the list of known issues seems pleasantly benign. I've not looked further (unrelated issue with the machine; it's going back to Apple at their request). In any case, these teaser notes seemed worth posting. Interested to learn what others discover! |
fwiw, very recent DDEV pre-release with full M1 support. |
Yeah I saw that DDev got that out which is great! We've done some testing that has been promising, but we still have work to do. |
@dustinleblanc how can we help with Testing? |
I have access to an M1 MacBook Air - would also be happy to run through any processes that are helpful |
@andrew-boyd I got adventerous last night and did the following:
Was a little slow on some things I did but otherwise all worked as expected. There are some more complex things I want to try today. |
@dwhoban I did the same - with an existing Laravel project from our org - to less success. 😆 |
@dwhoban I take it back! I must have borked something with that particular project. I've been able to install and run several projects successfully using the latest Docker preview build with Lando! |
Also had luck using Lando with an M1 MacBook Pro. Installed the Docker developer preview, installed Lando (3.0.25) customizing the install to not install Docker (which I recognize is not a supported configuration.) Created and started a Drupal 9 project that seemed to work fine. If I run into any quirks as I continue to use it, I'll follow up here. |
Already ran into some quirks :) Upon further restarts things seemed to be getting hung up on the message Scanning to determine which services are ready... Please standby... ? I was able to get past this by adding the following to .lando.yml as mentioned in this issue:
It works, but unsurprisingly seems to indicate that something funky is going on. |
I have used Lando successfully on my M1 MBP with the drupal8 and drupal9 recipes. I have not gotten the pantheon recipe to work. The main issue (or at least the one I didn't get past) is that the edge container fails to start, so you get 404s for the lando URLs. I assume there's some incompatibility with that varnish image. |
As a workaround you CAN disable the edge, cache and index services in your
Landofile.
https://docs.lando.dev/config/pantheon.html#customizing-the-stack
…On Thu, Feb 25, 2021 at 12:42 PM Jeff Mann ***@***.***> wrote:
I have used Lando successfully on my M1 MBP with the drupal8 and drupal9
recipes.
I have not gotten the pantheon recipe to work. The main issue (or at least
the one I didn't get past) is that the edge container fails to start, so
you get 404s for the lando URLs.
[image: image]
<https://user-images.githubusercontent.com/18371709/109193625-924fb980-7766-11eb-8c7d-d370dd8bf77f.png>
I assume there's some incompatibility with that varnish image.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2688 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFOFUBT5ZVDTC44MI3GTMTTA2DW3ANCNFSM4TSBIK3A>
.
|
Was looking at this more today, we might be able to just buy an M1 mini, set it up somewhere, install the GitHub runner app on it, and get arm builds rolling ourselves. https://gregmfoster.medium.com/using-m1-mac-minis-to-power-our-github-actions-ios-ci-540c55af13ea |
So how faster lando on mac M1 in comparison with lando (docksal) on intel based mac with virtual box? Trying to decide if it is a time to sell my 32GB, i7 intel mac and buy mac with m1 for Drupal development. So far, the bad part about development on intel based mac is that it either extremely slow (if using native docker) or drying the battery (if using the virtual box). Have also to say, that non of existing intel mac variant for development with docker is not that fast as native Linux + docker setup. |
Does anyone have a guide on how to change an existing Lando config to use ARM images if using an M1 Mac? Or would Lando automatically detect if someone is on ARM and use ARM Docker images if available? |
Adding a link to #3137 as that issue is a blocker to Pantheon recipes using Lando on an M1. (Though it looks like @reynoldsalec is actively working on a PR. 🎉 ) The current Pantheon recipe uses an Intel image and triggers qemu virtualization inside Docker Desktop. Two layers of virtualization is too much for Docker Desktop and can lead to strange failures that seem random. I would be curious is someone with an M1 Max has enough power and resources to make that moot. 🤔 Also, a note for anyone that may have .lando.yml service overrides, make sure none of your overrides are calling in Intel images. We had an example where we were adding PHP to our node service to allow Pattern Lab builds to work, but the PHP image we added in was Intel specific. |
Would love this as well. I'm specifically having my mariadb database container conk out on a Drupal 9 recipe, but only from large queries (like a db-import). I suspect it has something to do with using an emulated mariadb docker image, but... I can't figure out how to test using the ARM image. Noob life. |
@kencyong I found that Lando uses ARM based images when possible. But for the database images, they depend on Bitnami containers. ARM support is coming. Just watch bitnami/charts#7305 They cannot commit to a timeline/timeframe, but they are working on it. Once ARM-based Bitnami images are available, then I believe doing a lando rebuild will use the newer image. |
I'm using Drupal 9 with Platform.sh hosting on a new project and also experienced the issue with my MariaDB server appearing not to run. My workaround, thanks to help from Alec was these steps
|
It worked neatly, thanks |
Hi, thanks, that worked for me too! |
@marcomc @jan-steffen with your config does the database persists between rebuilds? when I run lando rebuild the db data is gone. |
I had that problem as well in the past. It seems, that my volume definition was not 100% correct. Here is my updated config, where the database now survives the rebuild ;)
@note: I had massive performance issues on multiple of our projects with the latest mariadb image. I figured out for me, that 10.6.5 was the latest version that does not have those issues without knowing the reason. But maybe that helps someone else. |
@jan-steffen is the last updated: I tried all variations. nothing is persisting the data for me between update: I had incorrect mapping. : mariadb:/var/lib/mysql is the correct one. |
@awm086 So its working for you now? |
@jan-steffen yes - thank you. |
Lando recipe for Postgres ARM64/Apple Silicon/M1/M2 Using the MariaDB recipe as a start (from #2688 (comment)) You probably want to replace NOTE: I could NOTE: The DB doesn't survive a
|
I guess the documentation we should look at is https://docs.lando.dev/config/services.html#building-a-custom-service And the examples are at https://github.com/lando/compose/tree/main/examples/compose |
I just wanted to add a personal example that might work for those who want a workaround while waiting on official bitnami Lando ARM support for their M1 Macbook, like I did. After a lot of tweaks to Docker, and trying out many GitHub and SO search recommendations, I changed my
...to use zcube's bitnami multi-architectue images as a custom image instead:
There are a ton of supported builds for a bunch of major bitnami services that should provide drop-in replacement (example) for Lando's recipes, while we wait on bitnami or Lando to do this work themselves. I hope it helps some other poor soul, trying to get his local dev working on a new laptop. Good luck, friends! |
As a note, I had to add the following line into my database > services > environment section to make lando db-import work:
The issue I ran into was that
Then you can use a custom mariadb database container and still use |
What worked best for me so far (setup is a bit tricky, but it works better than expected)
Working with code:
Performance is a bit slow, but I had zero issues so far. Mainly I need to do it this way because I need a current version of Docker Desktop on my Mac for other projects and the version of lando is causing too many problems. |
Has anyone successfully run lando on macOS 12.6+ (Monterey) with Docker Desktop v4.15.0+? I'm currently working with a heavy workaround, so I can develop the projects further. Sad to see there is currently no real approach to get M1 going. I tried myself fixing it, but I lack certain knowledge about Landos architecture of for contributing a PR. I would be happy to give you tips on how to get lando working with the current Docker Desktop version under M1/M2. |
FWIW i've been running with Docker Desktop 4.15.0 and macOS 13.1 for quite awhile without issues. The x64 images that run under emulation with QEMU have generally worked ok for me although there is a performance hit. The new Rosetta emulation backend in Docker 4.16 may improve that. Lando 4 is being designed to run on only official docker images so MOST services of reasonably recent versions will have native support for arm64 images. |
@CodeBrauer The only issue one of my coworkers hit recently was that the new version of docker ... or maybe new OSX, I think he was on Ventura 14.x, is that one of them adds support for a new file sharing method that doesn't play well with lando. If you stick with the "legacy osxfs" file sharing method or the "gRPC" file sharing method you should be good but you will have to go into the docker preferences on a Mac and adjust it to one of these since the default on the new docker is a new 3rd option. FYI, I haven't done it myself yet, just heard through Slack. |
@CodeBrauer + @ccjjmartin latest pre-release available (Lando 3.9.0) should improve compatibility with VirtioFS (and also contains support for Docker Desktop up to 4.16.1): https://github.com/lando/lando/releases/tag/v3.9.0 |
@reynoldsalec Thank you very much for that information! Currently, running macOS 12.6, Docker Desktop 4.16.2 and using gRPC FUSE - I have no problems using |
Hello, friends. I stumbled upon this thread looking for localdev lando drupal 9 with mysql/mariadb on M1/M2 arm macbook. I am new enough to lando to not completely understand this, but it works:
The key here is https://github.com/lando/pantheon/blob/main/services/pantheon-mariadb/builder.js Hope this helps, and I hope someone can explain more 😄 |
Hi all. I had the same problem with an Apple M2 silicon chip, and I finally got it working, adding this to my lando.yml:
The lando slack channel was really helpful with this. Thanks! |
is this under config: ? causes some error for me |
@atera-web under "services", see also https://docs.lando.dev/core/v3/services.html#overrides |
just to provide some updates here, we are about a month away from rolling out the first of our "v4" service preview for Lando 3. MariaDB/MySQL will likely be the first two services supported and will be fully ARMed for Apple Silicon usage. |
...if you're interested in progress here, check out: https://lando.dev/blog/2023/09/25/v320-extended.html, particularly the section starting with "Lando 4 Service Preview". tl;dr is that we have the "base" layer for the Lando v4 services done, now we need to create the next abstraction layer and start reimplementing all the basic services. For now, highly recommend trying the "Use Rosetta for x86/amd64 emulation on Apple Silicon" in the "Features in Development" section of your Docker Desktop settings if you have critical errors related to ARM support; that's resolved at least one compatibility issue for me. |
So...having just started working with a company that uses Lando for local development (I have used DDEV for years), I've run into many frustrating issues with this as well. Most of our developer team is overseas, and they all have Linux laptops, while I was issued a 2023 Macbook Pro with an M2 Max chip and 32G of RAM. I have Rosetta 2 installed, and have Docker for Desktop running in emulation mode with Rosetta for x86/amd64 emulation enabled. After working through several issues attempting to get existing Lando projects to spin up without crashing, I've stumbled upon a combination of the following that seems to be working at the moment:
Sharing for anyone else spinning on this issue, as I have sunk hours into resolving this, having come from using DDEV for local development where Apple Silicon has been supported for quite some time. |
Lando is a wondrous chap, but he is currently only compatible with the x86 hardware found in the last great generation of Corellian Freighters, probably because of the traumatic experience of the loss of L3. Now that the great conflict has ended, and we're forming the new Republic, it's time for Lando to get up to date with the latest starship hardware, namely:
https://www.apple.com/macbook-pro-13/
and it would be super cool if he also could hang with https://www.raspberrypi.org/products/raspberry-pi-400/ (though this would be a bit more of a stretch).
We've known this was coming for a while, but now that release day is here (and we have hardware on order), we should start getting things ready for the new world.
some docs on docker things we probably need to do: https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
The text was updated successfully, but these errors were encountered: