我正在开发一个小型爱好项目,其中我有一个使用 sqlite3 作为数据库的后端。然后我想对其进行 dockerize 并最终将其托管在某个地方。 我的问题如下所示,我已经在谷歌上搜索了该问题的解决方案。但没有效果。
我已经尝试过但不起作用的事情
我的dockerfile:
# syntax=docker/dockerfile:1
FROM node:18-alpine
WORKDIR /app
COPY package.json ./
COPY yarn.lock ./
RUN yarn install
COPY . .
CMD ["yarn", "start"]
EXPOSE 3000
运行我的 docker 容器时,我会:
docker build -t my-app .
然后
docker run -dp 127.0.0.1:3000:3000 my-app
问题
但是在我的 docker 容器日志中我收到以下错误:
2024-06-10 20:43:52 yarn run v1.22.19
2024-06-10 20:43:52 $ nodemon app.ts
2024-06-10 20:43:52 [nodemon] 3.1.0
2024-06-10 20:43:52 [nodemon] to restart at any time, enter `rs`
2024-06-10 20:43:52 [nodemon] watching path(s): *.*
2024-06-10 20:43:52 [nodemon] watching extensions: ts,json
2024-06-10 20:43:52 [nodemon] starting `ts-node app.ts`
2024-06-10 20:43:53 [nodemon] app crashed - waiting for file changes before starting...
2024-06-10 20:43:53 Error: Error loading shared library /app/node_modules/sqlite3/build/Release/node_sqlite3.node: Exec format error
2024-06-10 20:43:53 at Object.Module._extensions..node (node:internal/modules/cjs/loader:1460:18)
2024-06-10 20:43:53 at Module.load (node:internal/modules/cjs/loader:1203:32)
2024-06-10 20:43:53 at Function.Module._load (node:internal/modules/cjs/loader:1019:12)
2024-06-10 20:43:53 at Module.require (node:internal/modules/cjs/loader:1231:19)
2024-06-10 20:43:53 at require (node:internal/modules/helpers:177:18)
2024-06-10 20:43:53 at bindings (/app/node_modules/bindings/bindings.js:112:48)
2024-06-10 20:43:53 at Object.<anonymous> (/app/node_modules/sqlite3/lib/sqlite3-binding.js:1:37)
2024-06-10 20:43:53 at Module._compile (node:internal/modules/cjs/loader:1364:14)
2024-06-10 20:43:53 at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
2024-06-10 20:43:53 at Object.require.extensions.<computed> [as .js] (/app/node_modules/ts-node/src/index.ts:1608:43) {
2024-06-10 20:43:53 code: 'ERR_DLOPEN_FAILED'
2024-06-10 20:43:53 }
只需创建
.dockerignore
然后添加
.dockerignore
node_modules
然后重建docker