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 virtual machines in an isolated environment. Every build gets its own dedicated VM instance. 33 34- Build resources: 35 - [`medium`](eas-json/#resourceclass-1): 4 CPU, 16 GB RAM ([`n2-standard-4`](https://cloud.google.com/compute/docs/general-purpose-machines#n2_machines) Google Cloud machine type) 36 - [`large`](eas-json/#resourceclass-1): 8 CPU, 32 GB RAM ([`n2-standard-8`](https://cloud.google.com/compute/docs/general-purpose-machines#n2_machines) Google Cloud machine type) 37- [npm cache deployed with Kubernetes](caching/#javascript-dependencies) 38- [Maven cache deployed with Kubernetes](caching/#android-dependencies) 39- Global Gradle configuration in **~/.gradle/gradle.properties**: 40 41 ```ini ~/.gradle/gradle.properties 42 org.gradle.jvmargs=-Xmx14g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 43 org.gradle.parallel=true 44 org.gradle.configureondemand=true 45 org.gradle.daemon=false 46 ``` 47 48- Global npm configuration in **~/.npmrc**: 49 50 ```ini ~/.npmrc 51 registry=http://npm-cache-service.worker-infra-production.svc.cluster.local:4873 52 ``` 53 54- Global Yarn configuration in **~/.yarnrc.yml**: 55 56 ```yml ~/.yarnrc.yml 57 unsafeHttpWhitelist: 58 - '*' 59 npmRegistryServer: 'http://npm-cache-service.worker-infra-production.svc.cluster.local:4873' 60 enableImmutableInstalls: false 61 ``` 62 63### Android server images 64 65#### `ubuntu-22.04-jdk-11-ndk-r21e` (alias `latest`) 66 67<Collapsible summary="Details"> 68 69- Docker image: `ubuntu:jammy-20220531` 70- NDK 21.4.7075529 71- Node.js 16.18.1 72- Yarn 1.22.17 73- pnpm 7.0.0 74- npm 8.19.2 75- Java 11 76 77</Collapsible> 78 79#### `ubuntu-22.04-jdk-8-ndk-r21e` 80 81<Collapsible summary="Details"> 82 83- Docker image: `ubuntu:jammy-20220531` 84- NDK 21.4.7075529 85- Node.js 16.18.1 86- Yarn 1.22.17 87- pnpm 7.0.0 88- npm 8.19.2 89- Java 8 90 91</Collapsible> 92 93#### `ubuntu-20.04-jdk-11-ndk-r21e` (alias `default`) 94 95<Collapsible summary="Details"> 96 97- Docker image: `ubuntu:focal-20210921` 98- NDK 21.4.7075529 99- Node.js 16.18.1 100- Yarn 1.22.17 101- pnpm 7.0.0 102- npm 8.19.2 103- Java 11 104 105</Collapsible> 106 107#### `ubuntu-20.04-jdk-8-ndk-r21e` 108 109<Collapsible summary="Details"> 110 111- Docker image: `ubuntu:focal-20210921` 112- NDK 21.4.7075529 113- Node.js 16.18.1 114- Yarn 1.22.17 115- pnpm 7.0.0 116- npm 8.19.2 117- Java 8 118 119</Collapsible> 120 121#### `ubuntu-18.04-jdk-11-ndk-r19c` 122 123<Collapsible summary="Details"> 124 125- Docker image: `ubuntu:bionic-20210930` 126- NDK 19.2.5345600 127- Node.js 16.18.1 128- Yarn 1.22.17 129- pnpm 7.0.0 130- npm 8.19.2 131- Java 11 132 133</Collapsible> 134 135#### `ubuntu-18.04-jdk-8-ndk-r19c` 136 137<Collapsible summary="Details"> 138 139- Docker image: `ubuntu:bionic-20210930` 140- NDK 19.2.5345600 141- Node.js 16.18.1 142- Yarn 1.22.17 143- pnpm 7.0.0 144- npm 8.19.2 145- Java 8 146 147</Collapsible> 148 149## iOS build server configurations 150 151iOS worker VMs run on Mac Mini 8.1 hosts in an isolated environment. Every build gets its own fresh macOS VM: 152 153- Hardware: 154 - Intel: Intel(R) Core(TM) i7-8700B CPU (6 cores/12 threads), 64 GB RAM 155 - M1: 3.2GHz 8-Core M1 (4 performance and 4 efficiency cores), 16 GB RAM [2020] 156- Build resources: 157 - [`intel-medium`](eas-json/#resourceclass-2): 3 cores, 12 GB RAM, 2 builder VMs per host 158 - [`m1-medium`](eas-json/#resourceclass-2): 2 cores, 8 GB RAM, 2 builder VMs per host 159- [npm cache](caching/#javascript-dependencies) 160- [CocoaPods cache](caching/#ios-dependencies) 161- [`cocoapods-nexus-plugin`](https://github.com/expo/eas-build/tree/main/packages/cocoapods-nexus-plugin) 162- Global npm configuration in **~/.npmrc**: 163 164 ```ini ~/.npmrc 165 registry=http://10.254.24.9:4873 166 ``` 167 168- Global Yarn configuration in **~/.yarnrc.yml**: 169 170 ```yml ~/.yarnrc.yml 171 unsafeHttpWhitelist: 172 - '*' 173 npmRegistryServer: 'registry=http://10.254.24.9:4873' 174 enableImmutableInstalls: false 175 ``` 176 177### iOS server images 178 179#### `macos-monterey-12.6-xcode-14.2` (alias `latest`) 180 181<Collapsible summary="Details"> 182 183- macOS Monterey 12.6 184- Xcode 14.2 (14C18) 185- Node.js 16.18.1 186- Yarn 1.22.17 187- pnpm 7.27.0 188- npm 8.19.2 189- fastlane 2.211.0 190- CocoaPods 1.11.3 191- Ruby 2.7 192 193</Collapsible> 194 195#### `macos-monterey-12.6-xcode-14.1` (alias `default`) 196 197<Collapsible summary="Details"> 198 199- macOS Monterey 12.6 200- Xcode 14.1 (14B47b) 201- Node.js 16.18.1 202- Yarn 1.22.17 203- pnpm 7.15.0 204- npm 8.19.2 205- fastlane 2.210.1 206- CocoaPods 1.11.3 207- Ruby 2.7 208 209</Collapsible> 210 211#### `macos-monterey-12.6-xcode-14.0` 212 213<Collapsible summary="Details"> 214 215- macOS Monterey 12.6 216- Xcode 14.0 (14A309) 217- Node.js 16.18.1 218- Yarn 1.22.17 219- pnpm 7.11.0 220- npm 8.19.2 221- fastlane 2.210.0 222- CocoaPods 1.11.3 223- Ruby 2.7 224 225</Collapsible> 226 227#### `macos-monterey-12.4-xcode-13.4` 228 229<Collapsible summary="Details"> 230 231- macOS Monterey 12.4 232- Xcode 13.4 (13F17a) 233- Node.js 16.18.1 234- Yarn 1.22.17 235- pnpm 7.0.0 236- npm 8.19.2 237- fastlane 2.205.2 238- CocoaPods 1.11.3 239- Ruby 2.7 240 241</Collapsible> 242 243#### `macos-big-sur-11.4-xcode-13.0` 244 245<Collapsible summary="Details"> 246 247- macOS Big Sur 11.4 248- Xcode 13.0 (13A233) 249- Node.js 16.18.1 250- Yarn 1.22.17 251- pnpm 7.0.0 252- npm 8.19.2 253- fastlane 2.185.1 254- CocoaPods 1.10.1 255- Ruby 2.7 256 257</Collapsible> 258 259#### `macos-monterey-12.3-xcode-13.3` (deprecated) 260 261<Collapsible summary="Details"> 262 263- macOS Monterey 12.3.1 264- Xcode 13.3.1 (13E500a) 265- Node.js 16.18.1 266- Yarn 1.22.17 267- pnpm 7.0.0 268- npm 8.19.2 269- fastlane 2.205.2 270- CocoaPods 1.11.3 271- Ruby 2.7 272 273</Collapsible> 274 275#### `macos-monterey-12.1-xcode-13.2` (deprecated) 276 277<Collapsible summary="Details"> 278 279- macOS Monterey 12.1 280- Xcode 13.2.1 (13C100) 281- Node.js 16.18.1 282- Yarn 1.22.17 283- pnpm 7.0.0 284- npm 8.19.2 285- fastlane 2.201.0 286- CocoaPods 1.11.2 287- Ruby 2.7 288 289</Collapsible> 290 291#### `macos-big-sur-11.4-xcode-12.5` (deprecated, not available for M1 workers) 292 293<Collapsible summary="Details"> 294 295- macOS Big Sur 11.4 296- Xcode 12.5 (12E5244e) 297- Node.js 16.18.1 298- Yarn 1.22.17 299- pnpm 7.0.0 300- npm 8.19.2 301- fastlane 2.185.1 302- CocoaPods 1.10.1 303- Ruby 2.7 304 305</Collapsible> 306