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## Builder IP addresses
13
14Here is the [up-to-date list of builder 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 builders 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 builder 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
156  - M2: 3.4GHz 12-Core M2 (8 performance and 4 efficiency cores), 24 GB RAM
157- Build resources:
158  - [`intel-medium`](eas-json/#resourceclass-2): 3 cores, 12 GB RAM, 2 builder VMs per host
159  - [`m-medium`](eas-json/#resourceclass-2): 2 cores, 8 GB RAM, 2 builder VMs per host
160- [npm cache](caching/#javascript-dependencies)
161- [CocoaPods cache](caching/#ios-dependencies)
162- [`cocoapods-nexus-plugin`](https://github.com/expo/eas-build/tree/main/packages/cocoapods-nexus-plugin)
163- Global npm configuration in **~/.npmrc**:
164
165  ```ini ~/.npmrc
166  registry=http://10.254.24.9:4873
167  ```
168
169- Global Yarn configuration in **~/.yarnrc.yml**:
170
171  ```yml ~/.yarnrc.yml
172  unsafeHttpWhitelist:
173    - '*'
174  npmRegistryServer: 'registry=http://10.254.24.9:4873'
175  enableImmutableInstalls: false
176  ```
177
178### iOS server images
179
180#### `macos-ventura-13.3-xcode-14.3` (`latest` for Apple silicon builders, only available for Apple silicon builders)
181
182<Collapsible summary="Details">
183
184- macOS Ventrua 13.3
185- Xcode 14.3 (14E222b)
186- Node.js 16.18.1
187- Yarn 1.22.17
188- pnpm 8.2.0
189- npm 8.1.2
190- fastlane 2.212.2
191- CocoaPods 1.12.0
192- Ruby 2.7
193
194</Collapsible>
195
196#### `macos-monterey-12.6-xcode-14.2` (`latest` for Intel builders, `default` for Apple silicon builders)
197
198<Collapsible summary="Details">
199
200- macOS Monterey 12.6
201- Xcode 14.2 (14C18)
202- Node.js 16.18.1
203- Yarn 1.22.17
204- pnpm 7.27.0
205- npm 8.19.2
206- fastlane 2.211.0
207- CocoaPods 1.11.3
208- Ruby 2.7
209
210</Collapsible>
211
212#### `macos-monterey-12.6-xcode-14.1` (`default` for Intel builders)
213
214<Collapsible summary="Details">
215
216- macOS Monterey 12.6
217- Xcode 14.1 (14B47b)
218- Node.js 16.18.1
219- Yarn 1.22.17
220- pnpm 7.15.0
221- npm 8.19.2
222- fastlane 2.210.1
223- CocoaPods 1.11.3
224- Ruby 2.7
225
226</Collapsible>
227
228#### `macos-monterey-12.6-xcode-14.0`
229
230<Collapsible summary="Details">
231
232- macOS Monterey 12.6
233- Xcode 14.0 (14A309)
234- Node.js 16.18.1
235- Yarn 1.22.17
236- pnpm 7.11.0
237- npm 8.19.2
238- fastlane 2.210.0
239- CocoaPods 1.11.3
240- Ruby 2.7
241
242</Collapsible>
243
244#### `macos-monterey-12.4-xcode-13.4`
245
246<Collapsible summary="Details">
247
248- macOS Monterey 12.4
249- Xcode 13.4 (13F17a)
250- Node.js 16.18.1
251- Yarn 1.22.17
252- pnpm 7.0.0
253- npm 8.19.2
254- fastlane 2.205.2
255- CocoaPods 1.11.3
256- Ruby 2.7
257
258</Collapsible>
259
260#### `macos-big-sur-11.4-xcode-13.0`
261
262<Collapsible summary="Details">
263
264- macOS Big Sur 11.4
265- Xcode 13.0 (13A233)
266- Node.js 16.18.1
267- Yarn 1.22.17
268- pnpm 7.0.0
269- npm 8.19.2
270- fastlane 2.185.1
271- CocoaPods 1.10.1
272- Ruby 2.7
273
274</Collapsible>
275
276#### `macos-monterey-12.3-xcode-13.3` (deprecated)
277
278<Collapsible summary="Details">
279
280- macOS Monterey 12.3.1
281- Xcode 13.3.1 (13E500a)
282- Node.js 16.18.1
283- Yarn 1.22.17
284- pnpm 7.0.0
285- npm 8.19.2
286- fastlane 2.205.2
287- CocoaPods 1.11.3
288- Ruby 2.7
289
290</Collapsible>
291
292#### `macos-monterey-12.1-xcode-13.2` (deprecated)
293
294<Collapsible summary="Details">
295
296- macOS Monterey 12.1
297- Xcode 13.2.1 (13C100)
298- Node.js 16.18.1
299- Yarn 1.22.17
300- pnpm 7.0.0
301- npm 8.19.2
302- fastlane 2.201.0
303- CocoaPods 1.11.2
304- Ruby 2.7
305
306</Collapsible>
307
308#### `macos-big-sur-11.4-xcode-12.5` (deprecated, only available for Intel builders)
309
310<Collapsible summary="Details">
311
312- macOS Big Sur 11.4
313- Xcode 12.5 (12E5244e)
314- Node.js 16.18.1
315- Yarn 1.22.17
316- pnpm 7.0.0
317- npm 8.19.2
318- fastlane 2.185.1
319- CocoaPods 1.10.1
320- Ruby 2.7
321
322</Collapsible>
323