1--- 2title: Build server infrastructure 3sidebar_title: Server infrastructure 4maxHeadingDepth: 4 5description: Learn about the current build server infrastructure when using EAS. 6--- 7 8import { Collapsible } from '~/ui/components/Collapsible'; 9 10> This document describes the current build infrastructure as of **June 27, 2022**. It is likely to change over time, and this document will be updated. 11 12## Worker IP addresses 13 14Here is the [up-to-date list of worker IP addresses](https://expo.dev/eas-build-worker-ips.txt). 15 16## Configuring build environment 17 18Images for each platform have one specific version of Node.js, yarn, CocoaPods, Xcode, Ruby, Fastlane, and so on. You can override some of the versions in [eas.json](/build/eas-json). 19If there is no dedicated configuration option you're looking for, you can use [npm hooks](npm-hooks) to install or update any system dependencies with `apt-get` or `brew`. Please take into account that those customizations are applied during the build and will increase your build times. 20 21When selecting an image for the build you can use the full name provided below or one of the aliases: `default`, `latest`. 22 23- The use of a specific name guarantees the consistent environment with only minor updates. 24- `default` alias will be assigned to the environment that most closely resembles the configuration used for Expo SDK development. 25- `latest` alias will be assigned to the image with the most up to date versions of the software. 26 27> **info** **Note:** If you do not provide `image` in **eas.json**, your build will use `default` image. However, in some cases, we select a more appropriate image based on the Expo SDK version or React Native version. 28> You can check what image is used for a build in the "Spin up build environment" build logs section. 29 30## Android build server configurations 31 32Android workers run on Kubernetes in an isolated environment. Every build gets its own container running on a dedicated Kubernetes node: 33 34- Build resources: 4 CPU, 12 GB RAM 35- [npm cache deployed with Kubernetes](caching/#javascript-dependencies) 36- [Maven cache deployed with Kubernetes](caching/#android-dependencies) 37- Global Gradle configuration in **~/.gradle/gradle.properties**: 38 39 ```ini ~/.gradle/gradle.properties 40 org.gradle.jvmargs=-Xmx14g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 41 org.gradle.parallel=true 42 org.gradle.configureondemand=true 43 org.gradle.daemon=false 44 ``` 45 46- Global npm configuration in **~/.npmrc**: 47 48 ```ini ~/.npmrc 49 registry=http://npm-cache-service.worker-infra-production.svc.cluster.local:4873 50 ``` 51 52- Global Yarn configuration in **~/.yarnrc.yml**: 53 54 ```yml ~/.yarnrc.yml 55 unsafeHttpWhitelist: 56 - '*' 57 npmRegistryServer: 'http://npm-cache-service.worker-infra-production.svc.cluster.local:4873' 58 enableImmutableInstalls: false 59 ``` 60 61### Android server images 62 63#### `ubuntu-22.04-jdk-11-ndk-r21e` (alias `latest`) 64 65<Collapsible summary="Details"> 66 67- Docker image: `ubuntu:jammy-20220531` 68- NDK 21.4.7075529 69- Node.js 16.18.1 70- Yarn 1.22.17 71- pnpm 7.0.0 72- npm 8.19.2 73- Java 11 74 75</Collapsible> 76 77#### `ubuntu-22.04-jdk-8-ndk-r21e` 78 79<Collapsible summary="Details"> 80 81- Docker image: `ubuntu:jammy-20220531` 82- NDK 21.4.7075529 83- Node.js 16.18.1 84- Yarn 1.22.17 85- pnpm 7.0.0 86- npm 8.19.2 87- Java 8 88 89</Collapsible> 90 91#### `ubuntu-20.04-jdk-11-ndk-r21e` (alias `default`) 92 93<Collapsible summary="Details"> 94 95- Docker image: `ubuntu:focal-20210921` 96- NDK 21.4.7075529 97- Node.js 16.18.1 98- Yarn 1.22.17 99- pnpm 7.0.0 100- npm 8.19.2 101- Java 11 102 103</Collapsible> 104 105#### `ubuntu-20.04-jdk-8-ndk-r21e` 106 107<Collapsible summary="Details"> 108 109- Docker image: `ubuntu:focal-20210921` 110- NDK 21.4.7075529 111- Node.js 16.18.1 112- Yarn 1.22.17 113- pnpm 7.0.0 114- npm 8.19.2 115- Java 8 116 117</Collapsible> 118 119#### `ubuntu-18.04-jdk-11-ndk-r19c` 120 121<Collapsible summary="Details"> 122 123- Docker image: `ubuntu:bionic-20210930` 124- NDK 19.2.5345600 125- Node.js 16.18.1 126- Yarn 1.22.17 127- pnpm 7.0.0 128- npm 8.19.2 129- Java 11 130 131</Collapsible> 132 133#### `ubuntu-18.04-jdk-8-ndk-r19c` 134 135<Collapsible summary="Details"> 136 137- Docker image: `ubuntu:bionic-20210930` 138- NDK 19.2.5345600 139- Node.js 16.18.1 140- Yarn 1.22.17 141- pnpm 7.0.0 142- npm 8.19.2 143- Java 8 144 145</Collapsible> 146 147## iOS build server configurations 148 149iOS worker VMs run on Mac Mini 8.1 hosts in an isolated environment. Every build gets its own fresh macOS VM: 150 151- Hardware: Intel(R) Core(TM) i7-8700B CPU (6 cores/12 threads), 64 GB RAM 152- Build resource limits: 3 cores, 12 GB RAM 153- [npm cache](caching/#javascript-dependencies) 154- [CocoaPods cache](caching/#ios-dependencies) 155- [`cocoapods-nexus-plugin`](https://github.com/expo/eas-build/tree/main/packages/cocoapods-nexus-plugin) 156- Global npm configuration in **~/.npmrc**: 157 158 ```ini ~/.npmrc 159 registry=http://10.254.24.9:4873 160 ``` 161 162- Global Yarn configuration in **~/.yarnrc.yml**: 163 164 ```yml ~/.yarnrc.yml 165 unsafeHttpWhitelist: 166 - '*' 167 npmRegistryServer: 'registry=http://10.254.24.9:4873' 168 enableImmutableInstalls: false 169 ``` 170 171### iOS server images 172 173#### `macos-monterey-12.6-xcode-14.1` (alias `latest`) 174 175<Collapsible summary="Details"> 176 177- macOS Monterey 12.6 178- Xcode 14.1 (14B47b) 179- Node.js 16.18.1 180- Yarn 1.22.17 181- pnpm 7.15.0 182- npm 8.19.2 183- fastlane 2.210.1 184- CocoaPods 1.11.3 185- Ruby 2.7 186 187</Collapsible> 188 189#### `macos-monterey-12.6-xcode-14.0` (alias `default`) 190 191<Collapsible summary="Details"> 192 193- macOS Monterey 12.6 194- Xcode 14.0 (14A309) 195- Node.js 16.18.1 196- Yarn 1.22.17 197- pnpm 7.11.0 198- npm 8.19.2 199- fastlane 2.210.0 200- CocoaPods 1.11.3 201- Ruby 2.7 202 203</Collapsible> 204 205#### `macos-monterey-12.4-xcode-13.4` 206 207<Collapsible summary="Details"> 208 209- macOS Monterey 12.4 210- Xcode 13.4 (13F17a) 211- Node.js 16.18.1 212- Yarn 1.22.17 213- pnpm 7.0.0 214- npm 8.19.2 215- fastlane 2.205.2 216- CocoaPods 1.11.3 217- Ruby 2.7 218 219</Collapsible> 220 221#### `macos-big-sur-11.4-xcode-13.0` 222 223<Collapsible summary="Details"> 224 225- macOS Big Sur 11.4 226- Xcode 13.0 (13A233) 227- Node.js 16.18.1 228- Yarn 1.22.17 229- pnpm 7.0.0 230- npm 8.19.2 231- fastlane 2.185.1 232- CocoaPods 1.10.1 233- Ruby 2.7 234 235</Collapsible> 236 237#### `macos-monterey-12.3-xcode-13.3` (deprecated) 238 239<Collapsible summary="Details"> 240 241- macOS Monterey 12.3.1 242- Xcode 13.3.1 (13E500a) 243- Node.js 16.18.1 244- Yarn 1.22.17 245- pnpm 7.0.0 246- npm 8.19.2 247- fastlane 2.205.2 248- CocoaPods 1.11.3 249- Ruby 2.7 250 251</Collapsible> 252 253#### `macos-monterey-12.1-xcode-13.2` (deprecated) 254 255<Collapsible summary="Details"> 256 257- macOS Monterey 12.1 258- Xcode 13.2.1 (13C100) 259- Node.js 16.18.1 260- Yarn 1.22.17 261- pnpm 7.0.0 262- npm 8.19.2 263- fastlane 2.201.0 264- CocoaPods 1.11.2 265- Ruby 2.7 266 267</Collapsible> 268 269#### `macos-big-sur-11.4-xcode-12.5` (deprecated) 270 271<Collapsible summary="Details"> 272 273- macOS Big Sur 11.4 274- Xcode 12.5 (12E5244e) 275- Node.js 16.18.1 276- Yarn 1.22.17 277- pnpm 7.0.0 278- npm 8.19.2 279- fastlane 2.185.1 280- CocoaPods 1.10.1 281- Ruby 2.7 282 283</Collapsible> 284