Skip to content

Commit eef9202

Browse files
authored
Add shopify Node 24.15 image variant and drop unmaintained cargo subcommands (#48)
* Add shopify Node 24.15 image variant AWS deprecates the nodejs20.x Lambda runtime starting 2026-04-30; downstream projects need a Node 24 (LTS) shopify image variant to upgrade. This adds n24.15_p8.{1,2,3} alongside the existing n18 / n20 variants. - shopify/builder/build.py: add Node 24.15.0 (linux-x64-musl checksum from https://unofficial-builds.nodejs.org/download/release/v24.15.0/SHASUMS256.txt) - shopify/n24.15.0/p8.{1,2,3}/Dockerfile: regenerated from the Jinja template via python3 shopify/builder/build.py - shopify/README.md: list the new tags in the version table - .github/workflows/build.yml: add the three new tags to the build matrix Assisted by Claude Code (claude-opus-4-7) * Remove unmaintained cargo-wasi and cargo-component from shopify image The shopify image previously installed cargo-wasi and cargo-component as extra cargo subcommands. Both are no longer needed for Shopify Functions and one of them currently fails the build: - cargo-wasi: announced as unmaintained by the Bytecode Alliance and targeted wasm32-wasi, which Rust 1.84 removed. Modern Shopify Function templates build with `cargo build --target=wasm32-unknown-unknown` and Shopify CLI 3.73+ runs the Wasm optimization pass that cargo-wasi used to provide. - cargo-component: transitive dependencies (darling 0.23, serde_with 3.19, home 0.5.12) bumped their MSRV to rustc 1.88, but Alpine 3.22 ships rustc 1.87. `cargo install cargo-component` therefore aborts the build on every shopify variant on master since the Alpine 3.22 upgrade. The Component Model tooling is not used by Shopify Functions. The wasm32-unknown-unknown target stdlib needed by Shopify Functions is provided by the existing `rust-wasm` apk package, so no functionality is lost. Verified empirically by building the payment-customization Rust extension (shopify_function 2.0+) inside the resulting image. Touches the Jinja template + all 9 generated Dockerfiles (n18.19.0, n20.11.0, n24.15.0 × p8.1, p8.2, p8.3). Assisted by Claude Code (claude-opus-4-7)
1 parent 603488f commit eef9202

25 files changed

Lines changed: 1429 additions & 21 deletions

.github/workflows/build.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,15 @@ jobs:
201201
- path: shopify/n20.11.0/p8.3
202202
tags:
203203
- riptidepy/shopify:n20.11_p8.3
204+
- path: shopify/n24.15.0/p8.1
205+
tags:
206+
- riptidepy/shopify:n24.15_p8.1
207+
- path: shopify/n24.15.0/p8.2
208+
tags:
209+
- riptidepy/shopify:n24.15_p8.2
210+
- path: shopify/n24.15.0/p8.3
211+
tags:
212+
- riptidepy/shopify:n24.15_p8.3
204213
- path: keycloak/latest
205214
tags:
206215
- riptidepy/keycloak:latest

shopify/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,6 @@ used at build time. See below for current versions.
8080
| n20.11_p8.1 | 20.11 | 8.1 | 3.1 | 1.78 |
8181
| n20.11_p8.2 | 20.11 | 8.2 | 3.1 | 1.78 |
8282
| n20.11_p8.3 | 20.11 | 8.3 | 3.1 | 1.78 |
83+
| n24.15_p8.1 | 24.15 | 8.1 | 3.1 | 1.87 |
84+
| n24.15_p8.2 | 24.15 | 8.2 | 3.1 | 1.87 |
85+
| n24.15_p8.3 | 24.15 | 8.3 | 3.1 | 1.87 |

shopify/builder/build.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
# Checksum
99
"18.19.0": "10b7b23b6b867a25f060a433b83f5c3ecb3bcf7cdba1c0ce46443065a832fd41",
1010
"20.11.0": "a8bec39586538896715be7a2ca7ef08727a58ad94d25876c5db11cafacff4c37",
11+
"24.15.0": "8b75070ed35ef8381548f4396d3cf957fd1449db063f288fe00b0cb64456477f",
1112
}
1213
PHP_VERSIONS = ["8.1", "8.2", "8.3"]
1314
ALPINE_VERSION = "3.22" # Rust 1.87

shopify/builder/jinja_tpl/Dockerfile.jinja2

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

shopify/n18.19.0/p8.1/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

shopify/n18.19.0/p8.2/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

shopify/n18.19.0/p8.3/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

shopify/n20.11.0/p8.1/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

shopify/n20.11.0/p8.2/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

shopify/n20.11.0/p8.3/Dockerfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,13 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
159159

160160
RUN apk --no-cache add gettext git htop tree linux-headers libc-dev
161161

162-
# Install Rust
162+
# Install Rust with the WebAssembly targets needed for Shopify Functions
163+
# (modern Shopify Functions build with `cargo build --target=wasm32-unknown-unknown`,
164+
# which is provided by the rust-wasm package). cargo-wasi was unmaintained and
165+
# targeted wasm32-wasi, which Rust 1.84 removed; cargo-component pulls in
166+
# transitive deps that bumped their MSRV beyond Alpine's bundled rustc and is
167+
# not needed by Shopify Functions, so neither is installed here.
163168
RUN apk --no-cache add rust rust-wasm cargo
164-
RUN cargo install cargo-wasi --root=/usr/local
165-
RUN apk add --no-cache libressl-dev && cargo install 'cargo-component' --root=/usr/local
166169
RUN chmod 777 /usr/local/bin
167170

168171
COPY base.makefile Makefile shopify-app.md /assets/

0 commit comments

Comments
 (0)