From c6a0b7c99ae48d116b7feada7c9dbd28104fe01b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Mar 2026 18:09:53 +0000 Subject: [PATCH 1/2] Initial plan From feca4bf90d055a596151ee9f04b455def7f42d38 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Mar 2026 18:20:16 +0000 Subject: [PATCH 2/2] fix(docker): use node:20 builder to fix native module compilation failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Switch builder base images from node:20-alpine to node:20 (Debian) so that native modules (e.g. usb via @solana/wallet-adapter-wallets) compile without extra toolchain installation steps - Add COPY package-lock.json and use npm ci for reproducible builds - Runner stages remain node:20-alpine (lean final images) Fixes: Docker — Build Images CI failure Co-authored-by: mesayanroy <169074736+mesayanroy@users.noreply.github.com> --- devops/Dockerfile.backend | 8 +++++--- devops/Dockerfile.frontend | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/devops/Dockerfile.backend b/devops/Dockerfile.backend index 85f5ca2..7702417 100644 --- a/devops/Dockerfile.backend +++ b/devops/Dockerfile.backend @@ -1,11 +1,13 @@ # ── Build stage ────────────────────────────────────────────── -FROM node:20-alpine AS builder +# Use full Debian-based image in builder so native modules (e.g. from +# @solana packages) can compile without extra toolchain installs. +FROM node:20 AS builder WORKDIR /app # Copy workspace manifests first for layer caching -COPY package.json ./ +COPY package.json package-lock.json ./ COPY backend/package.json ./backend/ -RUN npm install --workspace=backend +RUN npm ci --workspace=backend COPY backend ./backend RUN npm -w backend run build diff --git a/devops/Dockerfile.frontend b/devops/Dockerfile.frontend index 5d7465b..a5c941f 100644 --- a/devops/Dockerfile.frontend +++ b/devops/Dockerfile.frontend @@ -1,10 +1,12 @@ # ── Build stage ────────────────────────────────────────────── -FROM node:20-alpine AS builder +# Use full Debian-based image in builder so native modules (e.g. usb via +# @solana/wallet-adapter-wallets) can compile without extra toolchain installs. +FROM node:20 AS builder WORKDIR /app -COPY package.json ./ +COPY package.json package-lock.json ./ COPY frontend/package.json ./frontend/ -RUN npm install --workspace=frontend +RUN npm ci --workspace=frontend COPY frontend ./frontend RUN npm -w frontend run build