Meet eas-like-local-builder: a Docker image built to streamline local Expo Android app builds, mirroring the Expo Application Services (EAS) environment for local builds 🎯
EAS cloud building can be costy, local builds require dependencies. This image tries to mimic EAS' ubuntu-22.04-jdk-17-ndk-r26b Android build server image in your local (or CI/CD) environment.💥
-
Pull It:
docker pull erayalakese/eas-like-local-builder -
Or Build It Yourself:
docker build -t eas-like-local-builder .
Defaults to eas build --platform android --local with the development profile:
docker container run -v /path/to/your/project:/app -w /app -it eas-like-local-builder
Use the -e flag for a custom profile like production:
docker container run -e PROFILE=production -v /path/to/your/project:/app -w /app -it eas-like-local-builder
To skip version control system (VCS) checks during the build (handy if you’re working without a Git repo), set EAS_NO_VCS:
docker container run -e EAS_NO_VCS=1 -v /path/to/your/project:/app -w /app -it eas-like-local-builder
If you ever need to run a different command (e.g., eas login or a build with a different profile), you’ll need to override the CMD at runtime. You can do this by appending the new command to the docker run instruction, like:
docker container run -v /path/to/your/project:/app -w /app -it eas-like-local-builder eas login
-v /path/to/your/project:/app: Mounts your project directory to/appinside the container. 📂-w /app: Sets the working directory to/app. 🏠-it: Runs the container interactively for commands that require input (e.g., EAS login). 🖥️-e PROFILE=...: Sets the build profile (e.g.,production); defaults todevelopmentif not specified. ⚙️-e EAS_NO_VCS=1: Disables VCS checks—perfect for no-Git scenarios. 🚫
- Ubuntu 22.04 (Jammy)
- OpenJDK 17
- Android NDK r26b
- Node.js 18.18.0
- npm 9.8.1
- Yarn 1.22.21
- pnpm 9.3.0
- Bun 1.1.13
- node-gyp 10.1.0
- Git (latest version)
- EAS CLI (latest version)
- Android SDK:
platform-toolsplatforms;android-33build-tools;33.0.0
Designed to match the EAS Ubuntu 22.04 JDK 17 NDK r26b image. Local builds, EAS consistency—boom! 💥
This repository and its developers are not affiliated with, endorsed by, or connected to Expo or ESA (Expo Application Services). This project is an independent effort to mimic the EAS build environment for local use. Use it at your own risk. 🚧
You can basically do everything with this repo and all the responsibility is yours.
The Unlicensed License—check out the LICENSE file for the details.