Compare commits

...

2 Commits

Author SHA1 Message Date
2b7d340264 fix(ci): use node:24-slim (glibc) instead of Alpine (musl)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Native modules like @matrix-org/matrix-sdk-crypto-nodejs detect the
libc type at install time and download the appropriate binary.

Previously, CI used node:24-alpine (musl), so native modules downloaded
musl binaries. But production runs on Debian (glibc), causing runtime
crashes when the glibc binary is expected but not found.

This fix:
- Changes CI to node:24-slim (Debian/glibc)
- Adds python3/make/g++ for native module compilation

Fixes: matrix-sdk-crypto-nodejs-linux-x64-gnu MODULE_NOT_FOUND
2026-03-01 19:40:09 -06:00
51d46b2e4a fix(ci): copy .npmrc before pnpm install in all Dockerfiles (#654)
Some checks failed
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/manual/base-image Pipeline was successful
ci/woodpecker/manual/infra Pipeline was successful
ci/woodpecker/manual/coordinator Pipeline was successful
ci/woodpecker/manual/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-02 01:09:22 +00:00
4 changed files with 14 additions and 1 deletions

View File

@@ -29,9 +29,10 @@ when:
- ".trivyignore" - ".trivyignore"
variables: variables:
- &node_image "node:24-alpine" - &node_image "node:24-slim"
- &install_deps | - &install_deps |
corepack enable corepack enable
apt-get update && apt-get install -y --no-install-recommends python3 make g++
pnpm config set store-dir /root/.local/share/pnpm/store pnpm config set store-dir /root/.local/share/pnpm/store
pnpm install --frozen-lockfile pnpm install --frozen-lockfile
- &use_deps | - &use_deps |

View File

@@ -30,6 +30,9 @@ COPY packages/ui/package.json ./packages/ui/
COPY packages/config/package.json ./packages/config/ COPY packages/config/package.json ./packages/config/
COPY apps/api/package.json ./apps/api/ COPY apps/api/package.json ./apps/api/
# Copy npm configuration for native binary architecture hints
COPY .npmrc ./
# Install dependencies (no cache mount — Kaniko builds are ephemeral in CI) # Install dependencies (no cache mount — Kaniko builds are ephemeral in CI)
# Then explicitly rebuild node-pty from source since pnpm may skip postinstall # Then explicitly rebuild node-pty from source since pnpm may skip postinstall
# scripts or fail to find prebuilt binaries for this Node.js version # scripts or fail to find prebuilt binaries for this Node.js version

View File

@@ -22,6 +22,9 @@ COPY packages/shared/package.json ./packages/shared/
COPY packages/config/package.json ./packages/config/ COPY packages/config/package.json ./packages/config/
COPY apps/orchestrator/package.json ./apps/orchestrator/ COPY apps/orchestrator/package.json ./apps/orchestrator/
# Copy npm configuration for native binary architecture hints
COPY .npmrc ./
# Install ALL dependencies (not just production) # Install ALL dependencies (not just production)
# No cache mount — Kaniko builds are ephemeral in CI # No cache mount — Kaniko builds are ephemeral in CI
RUN pnpm install --frozen-lockfile RUN pnpm install --frozen-lockfile

View File

@@ -24,6 +24,9 @@ COPY packages/ui/package.json ./packages/ui/
COPY packages/config/package.json ./packages/config/ COPY packages/config/package.json ./packages/config/
COPY apps/web/package.json ./apps/web/ COPY apps/web/package.json ./apps/web/
# Copy npm configuration for native binary architecture hints
COPY .npmrc ./
# Install dependencies (no cache mount — Kaniko builds are ephemeral in CI) # Install dependencies (no cache mount — Kaniko builds are ephemeral in CI)
RUN pnpm install --frozen-lockfile RUN pnpm install --frozen-lockfile
@@ -38,6 +41,9 @@ COPY packages/ui/package.json ./packages/ui/
COPY packages/config/package.json ./packages/config/ COPY packages/config/package.json ./packages/config/
COPY apps/web/package.json ./apps/web/ COPY apps/web/package.json ./apps/web/
# Copy npm configuration for native binary architecture hints
COPY .npmrc ./
# Install production dependencies only # Install production dependencies only
RUN pnpm install --frozen-lockfile --prod RUN pnpm install --frozen-lockfile --prod