Skip to content

Commit c3eac57

Browse files
committed
feat(sdk): install modern nodejs using nvm
1 parent f15a404 commit c3eac57

4 files changed

Lines changed: 23 additions & 5 deletions

File tree

.changeset/three-zebras-lead.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@cartesi/sdk": patch
3+
---
4+
5+
install modern nodejs using nvm

packages/sdk/Dockerfile

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ ARG CARTESI_MACHINE_EMULATOR_VERSION
272272
ARG CARTESI_PAYMASTER_VERSION
273273
ARG CARTESI_PASSKEY_SERVER_VERSION
274274
ARG CARTESI_ROLLUPS_NODE_VERSION
275+
ARG NODE_VERSION
276+
ARG NVM_VERSION
275277
ARG TARGETARCH
276278
ARG TARGETARCH
277279
ARG XGENEXT2_VERSION
@@ -286,14 +288,23 @@ apt-get install -y --no-install-recommends \
286288
libslirp0 \
287289
locales \
288290
lua5.4 \
289-
nodejs \
290-
npm \
291291
squashfs-tools \
292292
xxd \
293293
xz-utils
294294
rm -rf /var/lib/apt/lists/*
295295
EOF
296296

297+
# Install nvm and node
298+
ENV NVM_DIR=/root/.nvm
299+
RUN <<EOF
300+
curl -o- --fail --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh | bash
301+
. "$NVM_DIR/nvm.sh"
302+
nvm install $NODE_VERSION
303+
nvm use $NODE_VERSION
304+
nvm alias default $NODE_VERSION
305+
EOF
306+
ENV PATH="${NVM_DIR}/versions/node/v${NODE_VERSION}/bin:$PATH"
307+
297308
# Install e2fsprogs from backports
298309
RUN <<EOF
299310
echo 'deb http://deb.debian.org/debian bookworm-backports main' > /etc/apt/sources.list.d/backports.list
@@ -325,8 +336,8 @@ npm install -g \
325336
@pimlico/alto@${ALTO_VERSION}
326337

327338
mkdir -p /usr/share/cartesi
328-
cp -r /usr/local/lib/node_modules/@cartesi/devnet/deployments /usr/share/cartesi/
329-
cp /usr/local/lib/node_modules/@cartesi/devnet/anvil_state.json /usr/share/cartesi/
339+
cp -r "$(npm root -g)/@cartesi/devnet/deployments" /usr/share/cartesi/
340+
cp "$(npm root -g)/@cartesi/devnet/anvil_state.json" /usr/share/cartesi/
330341
EOF
331342

332343
# Install linux kernel image

packages/sdk/alto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
#!/bin/sh
2-
node "/usr/local/lib/node_modules/@pimlico/alto/esm/cli/index.js" $@
2+
node "$(npm root -g)/@pimlico/alto/esm/cli/index.js" $@

packages/sdk/docker-bake.hcl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ target "default" {
2121
ESPRESSO_DEV_NODE_BASE_IMAGE = "ghcr.io/espressosystems/espresso-sequencer/espresso-dev-node:20250428-dev-node-decaf-pos@sha256:78024bc092d51b47e81c0f715dc7a87ac9da81f62a4f8bf3165b3a199f9867fb"
2222
FOUNDRY_VERSION = "1.0.0"
2323
GO_MIGRATE_VERSION = "4.18.2"
24+
NODE_VERSION = "22.15.1"
25+
NVM_VERSION = "977563e97ddc66facf3a8e31c6cff01d236f09bd" # 0.40.3
2426
POSTGRES_BASE_IMAGE = "docker.io/library/postgres:17@sha256:7f29c02ba9eeff4de9a9f414d803faa0e6fe5e8d15ebe217e3e418c82e652b35"
2527
SU_EXEC_VERSION = "0.2"
2628
XGENEXT2_VERSION = "1.5.6"

0 commit comments

Comments
 (0)