node.js - docker-compose up --build 找不到模块
问题描述
当我启动我的容器(节点 Web 应用程序)时,docker build 很好,但是当我运行我的容器时,会出现这个问题
问题:
root@DESKTOP-PP3RIAT:/home/daramog/ezops-test-matheus-morozetti# docker-compose up
Recreating ezops-test-matheus-morozetti_web_1 ... done
Attaching to ezops-test-matheus-morozetti_web_1
web_1 | node:internal/modules/cjs/loader:944
web_1 | throw err;
web_1 | ^
web_1 |
web_1 | Error: Cannot find module '/app/server.js'
web_1 | at Function.Module._resolveFilename (node:internal/modules/cjs/loader:941:15)
web_1 | at Function.Module._load (node:internal/modules/cjs/loader:774:27)
web_1 | at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
web_1 | at node:internal/main/run_main_module:17:47 {
web_1 | code: 'MODULE_NOT_FOUND',
web_1 | requireStack: []
web_1 | }
ezops-test-matheus-morozetti_web_1 exited with code 1
我的 Dockerfile:
FROM node:alpine as builder
WORKDIR '/src'
COPY package*.json ./
RUN npm set strict-ssl false
RUN npm install
COPY . ..
RUN node ./server.js
EXPOSE 8080
CMD ["node", "server.js"]
我的 dockerfile.dev
FROM node:alpine
WORkDIR /src
COPY ["package.json","package-lock.json","/"]
RUN npm install
COPY . .
CMD ["npm", "start"]
我的码头工人撰写
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "3001:3001"
volumes:
- .:/src
command: ["node", "server.js"]
解决方案
该文件是否存在于容器中?
错误:找不到模块“/app/server.js”
从您的 docker-compose 我看到您将 workdir 设置为 /src,然后您将该文件复制到 /src 但是您尝试运行的是在 /app 下寻找 server.js
推荐阅读
- javascript - 使用 'this' 初始化常量时出错 | 'this' 隐含类型为 'any' 因为它没有类型注释
- r - 如何从 R 中的自相关双变量分布中生成数字?
- json - JSON Schema 草案 4 布尔值定义了必填字段
- java - 具有整数键的 Java 8 groupingBy 具有为小于 32 的整数排序的元素
- php - 如何使用 PHP 在动态中旋转帖子/页面内的缩略图?
- sql-server - 如何通过连接将一个平面文件导入两个表
- javascript - 如果文章元素不包含图像,如何隐藏它?
- c# - 将“SafeHandle”用于 C API,包括引用计数
- typescript - 返回量角器“element.all”的函数具有输出类型 Promise
而不是承诺 在打字稿中 - dialogflow-es - Dialogflow 检测意图并返回多个意图名称和置信度值