首页 > 解决方案 > 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"]

标签: node.jsdockernpm

解决方案


该文件是否存在于容器中?

错误:找不到模块“/app/server.js”

从您的 docker-compose 我看到您将 workdir 设置为 /src,然后您将该文件复制到 /src 但是您尝试运行的是在 /app 下寻找 server.js


推荐阅读