在 Docker-Compose 上运行时找不到模块

Posted

技术标签:

【中文标题】在 Docker-Compose 上运行时找不到模块【英文标题】:Module Not Found When Run on Docker-Compose 【发布时间】:2018-02-08 10:04:36 【问题描述】:

我正在准备一个将在生产中使用的 Dockerfile。但是由于某种原因,最后一个命令返回错误。

react_1  | [WEBPACK] Building 1 target
react_1  | [WEBPACK] Started building bundle.[chunkhash].js
react_1  | [WEBPACK] Build failed after 33.631 seconds
react_1  | [WEBPACK] Errors building bundle.[chunkhash].js
react_1  | Module not found: Error: Can't resolve './App' in '/home/app/react/src'

这里是docker文件的副本

Dockerfile.prod

FROM node:7.10.1-alpine

RUN apk update
ENV HOME=/home/app
COPY . $HOME/react/
RUN npm install yarn -g

WORKDIR $HOME/react
RUN mkdir build && mkdir dlls && yarn

CMD ["yarn", "start:prod"]

这是docker-compose 文件的副本

docker-compose.prod.yml

version: '3.1'
services:
  react:
    build:
      context: .
      dockerfile: Dockerfile.prod
    ports:
      - 3100:3100
    volumes:
      - /home/app/react

当我docker-compose -f docker-compose.prod.yml up --build -d 时,它会按预期工作,直到它构建 webpack 文件。但是如您在上面的错误中看到的那样失败。

但是当我这样做 docker-compose run react yarn start:prod 时,webpack 构建得很好。

这是有问题的repo。

【问题讨论】:

我得到同样的错误 start:dev 和 start:prod Module not found: Error: Can't resolve './App' in '/home/app/react/src' 试试import App from './App'; - 而不是import App from './App'...特别是export default class App 【参考方案1】:

我的错。这是区分大小写的错误。因为我是在 Windows 上,所以它顺利通过。

所以发生错误是因为import 语句正在查找App 文件夹,但实际文件夹是app

【讨论】:

以上是关于在 Docker-Compose 上运行时找不到模块的主要内容,如果未能解决你的问题,请参考以下文章

S7200编程时找不到添加模似量模块设置

在docker compose yml文件中设置环境变量时找不到文件错误

在物理设备上运行时找不到 -lBugsnagReactNative 的库

在 docker 中与 Zipkin 和 kafka 一起使用时找不到 zipkin2.reporter.Sender bean

Couchapp - 在 Windows 上运行“couchapp generate ...”时找不到默认模板

错误:在 apache 上运行 django 时找不到目标 WSGI 脚本或无法统计