Strapi V5. Docker build not working
nazisagit
HOBBYOP

4 months ago

--Encountered error:

Error: Failed to load native binding at Object.<anonymous> (/app/node_modules/@swc/core/binding.js:333:11)

--Dockerfile build step EDITED

FROM node:20.19.5-alpine3.21 AS build

WORKDIR /app

COPY package*.json ./

ENV npm_config_ignore_scripts=false

ENV npm_config_optional=true

RUN npm ci

COPY . .

RUN npm run build

--package.json

"dependencies": {

"@strapi/plugin-cloud": "5.29.0",

"@strapi/plugin-users-permissions": "5.29.0",

"@strapi/strapi": "5.29.0",

"fs-extra": "^10.0.0",

"mime-types": "^2.1.27",

"pg": "8.8.0",

"react": "^18.0.0",

"react-dom": "^18.0.0",

"react-router-dom": "^6.0.0",

"strapi-phone-validator-5": "^1.0.0",

"strapi-plugin-multi-select": "^2.1.1",

"styled-components": "^6.0.0",

"@swc/core": "^1.7.26"

}

I am using a node image which should allow for the native binding, and even setting @swc/core as a dependency which should load the compatible library. I am not sure at this point what more I could do.

Solved$10 Bounty

6 Replies

Railway
BOT

4 months ago

Hey there! We've found the following might help you get unblocked faster:

If you find the answer from one of these, please let us know by solving the thread!


Railway

Hey there! We've found the following might help you get unblocked faster: - [🧵 Strapi build fail: Failed to load native binding](https://station.railway.com/questions/strapi-build-fail-failed-to-load-native-9085c4ec) - [🧵 Unmable to build basic Node project](https://station.railway.com/questions/unmable-to-build-basic-node-project-f5d1349f) - [🧵 Guidance for Replit → GitHub → Railway deployments (best practices & handoff checklist)](https://station.railway.com/community/guidance-for-replit-git-hub-railway-d-743a3b78) If you find the answer from one of these, please let us know by solving the thread!

nazisagit
HOBBYOP

4 months ago

None of those help


sumon9836devil
FREE

4 months ago

The issue is that Alpine Linux doesn't have the necessary native bindings for @swc/core. The swc bindings are platform specific, and alpine uses musl libc instead of glibc, which can cause native

module issues.

Here are two solutions eyes emoji

Switch to Debian-based Node image

Use the Dockerfile

FROM node:20.19.5 AS build

WORKDIR /app

COPY package*.json ./

RUN npm ci

COPY . .

RUN npm run build


sumon9836devil

The issue is that Alpine Linux doesn't have the necessary native bindings for @swc/core. The swc bindings are platform specific, and alpine uses musl libc instead of glibc, which can cause nativemodule issues.Here are two solutionsSwitch to Debian-based Node imageUse the DockerfileFROM node:20.19.5 AS buildWORKDIR /appCOPY package*.json ./RUN npm ciCOPY . .RUN npm run build

nazisagit
HOBBYOP

4 months ago

FROM node:20.19.5 AS build
WORKDIR /app

# Install dependencies
COPY package*.json ./
RUN npm ci

# Build
COPY . .
RUN npm run build

# Remove dev dependencies after build
RUN npm prune --omit=dev


FROM node:20.19.5 AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1337

# Copy the built app with pruned dependencies
COPY --from=build /app /app

EXPOSE 1337
CMD ["npm", "run", "start"]

Still running into the same issue at RUN npm run build when strapi is attempting to build the admin panel


nazisagit
HOBBYOP

4 months ago

Solution no 2 did make the issue with running the npm run build work, but now I have an issue with Sharp

Could not load js config file /app/node_modules/@strapi/upload/dist/server/index.js: Could not load the "sharp" module using the linux-x64 runtime

nazisagit
HOBBYOP

4 months ago

Will open another thread for the new sharp issue


Status changed to Solved brody 4 months ago


Loading...