【问题标题】:Docker: Error: Cannot find module /app/src/myapp.jsDocker:错误:找不到模块 /app/src/myapp.js
【发布时间】:2020-02-05 13:37:40
【问题描述】:

当我构建我的容器时,它似乎编译没有任何问题:

docker build -t mycompany:1.0.0 .

当我检查docker images 时,容器会显示。

当我尝试使用

在本地托管它时
docker run -p 8081:8081 -it mycompany:1.0.0

它返回一个错误说:

Error: Cannot find module '/app/src/myapp.js

我觉得不应该这么复杂。这是我的 docker 文件:

FROM node:10
WORKDIR /app/src
COPY package.json /app
RUN npm install
COPY . /app
CMD node myapp.js
EXPOSE 8081

怎么了?

【问题讨论】:

  • 您的WORKDIR/app/src,但您将COPY 文件写入/app。如果您docker run --rm -it mycompany:1.0.0 bash 并四处寻找,您会发现文件系统布局不匹配。
  • myapp.js 在哪个目录?
  • 树看起来像这个 app/src/myapp.js @DavidMaze 它的 def 没有正确复制。我必须在 COPY 中更加明确
  • 你能用你的应用程序的树状目录更新你的帖子吗?我怀疑 Dockerfile 的位置不对!
  • 你们是对的,我复制的不是正确的路径。我最终做了COPY . . 并解决了大部分问题。现在有一个新错误需要我拖尾容器。

标签: node.js docker


【解决方案1】:

从错误本身可以看出,您没有在 /app/src 中复制任何内容。 您的两个 COPY 命令的目的地都是 /app。您需要将 myapp.js 放在 /app/src 中。

【讨论】:

  • src 可以在当前工作目录中,并通过命令COPY . /app 复制过来。当COPY 的目的地都是/app 时也可以。
  • 你找不到错误错误:找不到模块'/app/src/myapp.js。这意味着 myapp.js 不在 /app/src 中,这里的问题不是我们是否可以复制到同一个目的地。我已经回答给出解决方案而不是通用 docker 命令。
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 2016-03-03
  • 1970-01-01
相关资源
最近更新 更多