node-sqlite3
node-sqlite3 copied to clipboard
Getting MODULE_NOT_FOUND error while running Nodejs application with sqlite3 in the docker container
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