umi-server icon indicating copy to clipboard operation
umi-server copied to clipboard

使用egg的示例,在docker中跑npm run build报错

Open xiaoshuimao opened this issue 5 years ago • 2 comments

What happens?

使用https://github.com/umijs/umi-server/tree/master/examples/eggjs 这个案例。 项目下直接npm run buid 正常运行。 使用 docker,启动交互式容器,npm run build, 提示

Error: ENOENT: no such file or directory, scandir '/usr/src/app/pages'
    at readdirSync (fs.js:790:3)
    at getRouteConfigFromDir (/usr/src/app/node_modules/umi-build-dev/lib/routes/getRouteConfigFromDir.js:109:39)
    at _default (/usr/src/app/node_modules/umi-build-dev/lib/routes/getRouteConfig.js:57:49)
    at Object.fetchRoutes (/usr/src/app/node_modules/umi-build-dev/lib/plugins/commands/getRouteManager.js:35:51)
    at api.registerCommand.args (/usr/src/app/node_modules/umi-build-dev/lib/plugins/commands/build/index.js:66:19)
    at Service.runCommand (/usr/src/app/node_modules/umi-build-dev/lib/Service.js:485:12)
    at Service.run (/usr/src/app/node_modules/umi-build-dev/lib/Service.js:442:17)
    at Object.<anonymous> (/usr/src/app/node_modules/umi/lib/scripts/build.js:33:47)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/src/app/node_modules/umi/lib/cli.js:94:5)

如果通过docker映射磁盘的上的项目是没有问题,正常启动。 不知道哪里出了问题,请指教

Mini Showcase Repository(REQUIRED)

Provide a mini GitHub repository which can reproduce the issue. Use yarn create umi then upload to your GitHub

How To Reproduce

Steps to reproduce the behavior:

  1. Dockerfile
FROM node:10.16.3
WORKDIR /usr/src/app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --registry=https://registry.npm.taobao.org
COPY . .
EXPOSE 7001
CMD npm start
  1. build docker image
docker build --rm -f "Dockerfile" -t umi-egg-ssr:latest . 
  1. run docker container
docker run --rm -i -t  -p 7001:7001/tcp umi-egg-ssr:latest /bin/bash
  1. run npm cli
npm run build
  1. throw Error image

Expected behavior

希望能在docker下能正常启动,谢谢

Context

  • Umi Version:
  • Node Version:
  • Platform: windows

xiaoshuimao avatar Dec 02 '19 03:12 xiaoshuimao

我瞄瞄

ycjcl868 avatar Dec 03 '19 15:12 ycjcl868

手动加了个 APP_ROOT 变量倒是能临时解决这个问题

"build": "cross-env UMI_ENV=prod APP_ROOT=./app/web umi build",

xiaoshuimao avatar Dec 04 '19 08:12 xiaoshuimao