Nextjs无法在生产node_env的'.next'目录中找到有效的内部版本 [英] Nextjs fails to find valid build in the '.next' directory in production node_env

查看:588
本文介绍了Nextjs无法在生产node_env的'.next'目录中找到有效的内部版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在docker中运行我的应用程序,但是我的生产构建和启动脚本仅在docker环境中失败.尽管node_env的开发在docker环境中运行良好.

I am running my app in docker, but my production build and start script fails only in docker environment. Although node_env development works well in docker environment.

这是我的脚本,无法进行生产构建和启动服务器.我正在使用nodemon和babel

Here is my script that fails to make a production build and start a server. I am using nodemon and babel

"build:prod": {
      "command": "babel ./src/server/ -d server --presets es2015,stage-2 && next build src",
      "env": {
        "NODE_ENV": "production"
      }
    },
    "start:prod": {
      "command": "PORT=3000 nodemon --watch ./src/server/ ./src/server/server.js --exec babel-node --presets es2015,stage-2",
      "env": {
        "NODE_ENV": "production"
      }
    }

但是当我在docker环境中给出相同的命令时:

But when I give same command in docker environment:

FROM node:8-alpine

COPY package.json /tmp/package.json

RUN cd /tmp && npm install

RUN mkdir -p /opt/app && cp -a /tmp/node_modules /opt/app

WORKDIR /opt/app

ADD . /opt/app

RUN npm run build:prod

EXPOSE 3000

CMD ["npm", "run", "start:prod"]

我在docker中遇到以下错误:

I get the following error in docker:

 > better-npm-run start:prod
site_1      | 
site_1      | running better-npm-run in /opt/app
site_1      | Executing script: start:prod
site_1      | 
site_1      | to be executed: PORT=3000 NODE_ENV=production nodemon --watch ./src/server/ ./src/server/server.js --exec babel-node --presets es2015,stage-2 
site_1      | [nodemon] 1.17.3
site_1      | [nodemon] to restart at any time, enter `rs`
site_1      | [nodemon] watching: /opt/app/src/server/**/*
site_1      | [nodemon] starting `babel-node ./src/server/server.js --presets es2015,stage-2`
site_1      | false 'production'
site_1      | > Could not find a valid build in the '.next' directory! Try building your app with 'next build' before starting the server.
site_1      | [nodemon] app crashed - waiting for file changes before starting...

我将不胜感激,并且很高兴知道我在做错什么.

I would appreciate any help and would be nice to know what I am doing wrong.

推荐答案

您需要确保未从主机上复制.next目录

You need to make sure the .next directory is not being copied from your host

ADD . /opt/app

还将添加主机上的.next目录.我将添加.dockerignore并将.next添加到相同的位置.然后再次构建并运行

Will also add the .next directory you had on host. I would add .dockerignore and add .next to the same. And then build and run again

这篇关于Nextjs无法在生产node_env的'.next'目录中找到有效的内部版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆