Ubuntu 22.04下Docker运行Node.js镜像报错:找不到/app/app.js模块
解决Docker运行Node.js应用提示找不到/app/app.js的问题
核心问题:构建镜像时未指定上下文路径
你的docker build命令缺少了上下文路径参数(最后的.),导致Docker无法读取当前目录下的app.js和Dockerfile,最终容器内的/app目录是空的,所以Node.js找不到文件。
修复步骤
- 切换到项目目录:
cd /var/www/hello-docker
- 重新构建镜像,确保命令末尾加上
.(表示使用当前目录作为构建上下文):
sudo docker build -t hello-docker .
- 再次运行容器:
sudo docker run hello-docker
额外排查点(如果上述步骤无效)
- 检查项目目录下的文件是否存在:
ls /var/www/hello-docker
确认输出包含app.js和Dockerfile。
- 检查镜像内的文件是否被正确复制:
先启动一个临时容器查看内容:
sudo docker run --rm -it hello-docker ls /app
如果输出里没有app.js,说明构建时确实没复制成功,再检查构建命令的上下文路径。
- 权限问题:如果上述操作仍无效,可以尝试修改Dockerfile添加权限设置:
FROM node:alpine COPY . /app WORKDIR /app # 确保node用户有权限访问文件 RUN chown -R node:node /app USER node CMD node app.js
然后重新构建运行。
内容的提问来源于stack exchange,提问作者Nazmul
相关产品推荐
相关产品推荐

