在 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:prodModule 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 上运行时找不到模块的主要内容,如果未能解决你的问题,请参考以下文章
在docker compose yml文件中设置环境变量时找不到文件错误
在物理设备上运行时找不到 -lBugsnagReactNative 的库
在 docker 中与 Zipkin 和 kafka 一起使用时找不到 zipkin2.reporter.Sender bean