docker,pm2部署nuxt项目启动报错?

项目使用 nuxt2 写的, 现在进行了 npm run build 打包, 想在生产环境中使用docker部署,部署方式如下

上传项目

将打包后的 .nuxt, static, nuxt.config.js, package.json, node_modules上传至服务器 /home/wwwroot/default 下

(nginx等的配置略)

在项目目录创建启动文件

ecosystem.config.json

{
    "apps": {
        "name": "web",
        "cwd": "/home/node",
        "script": "./node_modules/nuxt/bin/nuxt.js",
        "args": "-c /home/node/nuxt.config.js",
        "exec_mode": "cluster",
        "instances": 4,
        "watch":false,
        "error_file": "/home/logs/web-err.log",
        "out_file": "/home/logs/web-out.log",
        "log_date_format": "YYYY-MM-DD HH:mm:ss",
        "autorestart": true,
        "max_memory_restart": "500M"
    }
}

一. 使用node镜像构建

直接基于拉取的node:16.14.0镜像运行一个容器

$ docker pull node:16.14.0
$ docker run -itd --name nuxtProject01 \
-p 3000:3000 \
-v /home/wwwroot/default:/home/node \
-v /home/logs:/home/logs node:16.14.0

然后进入容器内

$ docker exec -it nuxtProject01 bash

安装pm2

$ npm install pm2 -g

进入容器项目目录并执行ecosystem.config.json

$ cd /home/node && pm2 start ecosystem.config.json

项目可以正常运行

二. 现在使用Dockerfile的方式

Dockerfile文件:

FROM node:16.14.0

RUN npm config set registry https://registry.npm.taobao.org
    
RUN npm install pm2@5.2.0 -g
    
WORKDIR /home/node

ENV NODE_ENV=production
ENV HOST 0.0.0.0
    
EXPOSE 3000

CMD ["pm2-runtime", "start", "ecosystem.config.json"]

使用该 Dockerfile 构建自定义镜像:

$ docker build --no-cache -t nuxtImage:v1.0 .

基于镜像运行一个容器:

$ docker run -itd --name nuxtProject01 \
-p 3000:3000 \
-v /home/wwwroot/default:/home/node \
-v /home/logs:/home/logs nuxtImage:v1.0

现在访问服务,有以下报错:

No build files found in /home/node/ecosystem.config.json/.nuxt/dist/server.                        02:09:50
Use either `nuxt build` or `builder.build()` or start nuxt in development mode.
  Use either `nuxt build` or `builder.build()` or start nuxt in development mode.
  at VueRenderer._ready (node_modules/@nuxt/vue-renderer/dist/vue-renderer.js:4219:13)
  at async Server.ready (node_modules/@nuxt/server/dist/server.js:637:5)
  at async Nuxt._init (node_modules/@nuxt/core/dist/core.js:720:7)
✖ Nuxt Fatal Error                                                                   │
   │                                                                                        │
   │   Error: No build files found in /home/node/ecosystem.config.json/.nuxt/dist/server.   │
   │   Use either `nuxt build` or `builder.build()` or start nuxt in development mode.

找不到原因头疼

阅读 1.6k
1 个回答

你检查一下,怎么ecosystem.config.json 变文件夹了 /home/node/ecosystem.config.json/.nuxt/dist/server

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题