You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
HL uses docker under the hood to make cross platform development environment. Unfortunately Docker runs slowly on M1, most probably, because GraalVM did not yet released official GraalVM CE Docker images that target arm64.
Example warning from running bb stack:compile:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Making M1 work fine with HL or any other "native" (applies to compiled ones like golang, rust, c++) is hard. That's because AWS Lambda requires Linux amd64 binary. Producing valid binary for compiled languages is done by using Docker with a Linux Amazon Image. The build time of such binary on Docker varies across the different OSes and architectures. For M1, it's painfully slow and very likely that the build process will hang, which is the result of the early stage of Docker amd64 emulation on M1.
While there is an option to make some of the HL commands run fast on M1 by leveraging aarch64 Linux image, it's impossible to run the native-compiled aarch64 binary on AWS Lambda. AWS Lambda will hardly ever support aarch64, and that's why I've asked the question on GraalVM slack whether it's possible to cross-compile on aarch64 to amd64. While certainly, it's possible the GraalVM team may likely not introduce the following change soon.
For now, M1 users should believe that Docker is going to fix the emulation for amd64.
Since 0.6.0 version users with M1 should use ghcr.io/fierycod/holy-lambda-builder:aarch64-java11-21.3.0 or any alternative aarch64 builder available here and target ARM64 Lambda Architecture.
ARM64 is actually much better for Lambda, therefore I recommend it for all the users. See here
Describe the bug
HL uses docker under the hood to make cross platform development environment. Unfortunately Docker runs slowly on M1, most probably, because GraalVM did not yet released official GraalVM CE Docker images that target
arm64
.Example warning from running
bb stack:compile
:Upstream issue to track: oracle/graal#2666
Extra information:
OS
: [e.g. MacOS] Mac OS M1holy-lambda
version: irrelevantbb stack:doctor
output: irrelevantThe text was updated successfully, but these errors were encountered: