Docker容器中无法找到Module 'build'问题求助
解决SvelteKit容器化启动MODULE_NOT_FOUND错误
错误原因分析
你的Dockerfile存在两个关键问题:
- COPY路径错误:
COPY /build /app使用了绝对路径/build,Docker会从宿主机的根目录查找该目录,而非你的项目根目录,导致容器内的/app目录没有正确复制构建产物。 - 启动命令错误:
CMD node build中node命令后指定的是目录build,但Node.js需要执行具体的入口文件,而非目录。SvelteKit使用Node适配器构建后,build目录下的入口文件是index.js。
修正后的Dockerfile
FROM node:alpine # 从项目上下文的build目录复制到容器的/app目录 COPY ./build /app WORKDIR /app # 执行build目录下的index.js入口文件 CMD node index.js
额外注意事项
- 确保在构建镜像前,已经在本地项目根目录执行了
npm run build,生成了完整的build目录。 - 如果你的SvelteKit项目使用了其他适配器(如static),启动方式会不同,但从错误来看你应该用的是Node适配器。
内容的提问来源于stack exchange,提问作者Die Leertaste
相关产品推荐
相关产品推荐

