Docker运行报错:找不到/test/build/index.js模块的解决方法
解决Docker镜像中找不到index.js的问题
问题出在文件复制路径不匹配:你的index.js位于本地当前目录的build子目录下,但现有Dockerfile的COPY ./ ./会把当前目录的所有内容(包括build目录本身)复制到容器的/test/build目录,导致容器内的实际路径是/test/build/build/index.js,而非你期望的/test/build/index.js,所以Node无法找到目标文件。
以下是两种可行的解决方式:
方式一:修改Dockerfile的COPY路径
直接指定复制本地build目录下的内容到容器工作目录:
FROM node:alpine WORKDIR /test/build COPY ./build ./ CMD node index.js
方式二:调整构建上下文路径
如果不想修改Dockerfile,可将构建上下文切换到本地的build目录:
- 进入本地
build目录:
cd ./build
- 确保Dockerfile在该目录下(或通过
-f参数指定其路径),执行构建:
docker build -t hello-docker .
若Dockerfile在根目录,也可直接在根目录执行:
docker build -t hello-docker -f ./Dockerfile ./build
完成修改后重新构建并运行镜像,即可正常输出Hello world。
内容的提问来源于stack exchange,提问作者Julio
相关产品推荐
相关产品推荐

