node-sqlite3 icon indicating copy to clipboard operation
node-sqlite3 copied to clipboard

Getting MODULE_NOT_FOUND error while running Nodejs application with sqlite3 in the docker container

Open polyglot-me opened this issue 1 year ago • 5 comments

Issue Summary

Hi Everyone,

I'm not able to run my Nodejs v16 application in the docker container. Ending up with MODULE_NOT_FOUND error. Can someone help me what can be the issue and the solution? I'm using the latest sqlite3 version in my package.json

Here is my docker file


FROM node:16-alpine AS builder
RUN mkdir -p /myloc/usr/src/app
WORKDIR /myloc/usr/src/app

COPY package.json ./
#build all the local images in the base node container
RUN npm install
COPY . .

RUN npm run build
#RUN npm run test

FROM node:16-slim
RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app
COPY --from=builder /myloc/usr/src/app .

# Add user nodejsuser
RUN groupadd --gid 2000 nodejsuser \
  && useradd --uid 1300 --gid nodejsuser --shell /bin/bash --create-home nodejsuser
RUN chown -R nodejsuser:nodejsuser /usr/src/app

USER nodejsuser
EXPOSE 4000

EXPOSE 3000

CMD ["npm", "start"]

Image is built successfully but when I run the container I'm seeing this issue. Any help would be much appreciated.

Thanks

Relevant logs or output

Error: Cannot find module '/usr/src/app/node_modules/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node' Require stack:

  • /usr/src/app/node_modules/sqlite3/lib/sqlite3-binding.js
  • /usr/src/app/node_modules/sqlite3/lib/sqlite3.js
  • /usr/src/app/build/entity/data-service/sqlite.helper.js
  • /usr/src/app/build/entity/data-service/dataservice.controller.js
  • /usr/src/app/build/route.js
  • /usr/src/app/build/index.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15) at Function.Module._load (node:internal/modules/cjs/loader:833:27) at Module.require (node:internal/modules/cjs/loader:1057:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/usr/src/app/node_modules/sqlite3/lib/sqlite3-binding.js:4:17) at Module._compile (node:internal/modules/cjs/loader:1155:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10) at Module.load (node:internal/modules/cjs/loader:1033:32) at Function.Module._load (node:internal/modules/cjs/loader:868:12) at Module.require (node:internal/modules/cjs/loader:1057:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/usr/src/app/node_modules/sqlite3/lib/sqlite3-binding.js', '/usr/src/app/node_modules/sqlite3/lib/sqlite3.js', '/usr/src/app/build/entity/data-service/sqlite.helper.js', '/usr/src/app/build/entity/data-service/dataservice.controller.js', '/usr/src/app/build/route.js', '/usr/src/app/build/index.js'

Version

5.1.4

Node.js Version

16

How did you install the library?

docker alpine

polyglot-me avatar Feb 01 '23 12:02 polyglot-me