我有这个非常简单的dockerfile:
FROM node:lts AS runtime
WORKDIR /app
COPY . .
RUN npm install --verbose
RUN npm run build
ENV HOST=0.0.0.0
ENV PORT=3000
EXPOSE 3000
CMD node ./dist/server/entry.mjs
和
docker-compose.yml
:
version: '3'
services:
xxxxxx:
build: .
ports:
- "3000:3000"
我在我的 Mac 上进行了本地测试,没有问题。 但是当我转移到我的 ubuntu 服务器并运行
sudo docker-compose up
时,我收到此错误:
# node[7]: std::unique_ptr<long unsigned int> node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start() at ../src/node_platform.cc:68
# Assertion failed: (0) == (uv_thread_create(t.get(), start_thread, this))
----- Native stack trace -----
1: 0xe2fcd7 node::Assert(node::AssertionInfo const&) [node]
2: 0xeb54ce node::WorkerThreadsTaskRunner::WorkerThreadsTaskRunner(int) [node]
3: 0xeb55ac node::NodePlatform::NodePlatform(int, v8::TracingController*, v8::PageAllocator*) [node]
4: 0xdd22b6 [node]
5: 0xdd37b4 node::Start(int, char**) [node]
6: 0x7f513d15624a [/lib/x86_64-linux-gnu/libc.so.6]
7: 0x7f513d156305 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
8: 0xd2717e _start [node]
Aborted (core dumped)
ERROR: Service 'xxxxxx' failed to build: The command '/bin/sh -c npm install --verbose' returned a non-zero code: 134
我用谷歌搜索了几轮,只找到了一个论坛命令提到的可能是
node
版本问题。我检查了我的本地版本是21.5
,所以我更改了dockerfile
:
from node:21.7
仍然遇到同样的问题。
运行时出现错误
npm install
这里似乎有什么问题?我该如何解决这个问题?
我认为日志缺少信息。根据经验,我认为你的问题是服务器内存不足。
理想的情况是您在计算机上编译映像并将映像拉取到服务器,而无需在服务器上重新编译它。
通过更改NPM内存参数来执行测试。