哈兹班德 2024-01-12 11:27 采纳率: 65.6%
浏览 28

docker中pm2启动nuxt2项目报错

Docker中使用pm2 部署nuxt2项目,
Dockerfile 如下:

FROM node:16.14.0-bullseye-slim

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

ENV NODE_ENV=production

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

创建镜像

$ docker build --no-cache -t nuxt:v1 .

基于镜像创建容器

$ docker run -itd --name nuxtProject -p 3000:3000 -v /home/wwwroot/default:/home/node -v /home/logs:/home/logs nuxt:v1

然后报错:
docker logs nuxtProject 报错如下:

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.

如果我在Dockerfile 中删除 CMD ["pm2-runtime", "start", "/home/node/ecosystem.config.json"]
并创建容器后, 执行

docker exec -it nodetest01 pm2 start ecosystem.config.json

就可以. 求解

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-12 14:14
    关注

    【以下回答由 GPT 生成】

    问题的原因是在Dockerfile中使用的CMD命令没有在构建镜像时执行nuxt build命令来构建Nuxt项目,导致在容器启动时无法找到构建后的文件。要解决这个问题,需要在Dockerfile中添加相应的命令来构建Nuxt项目。

    以下是修改后的Dockerfile,增加了构建Nuxt项目的命令:

    FROM node:16.14.0-bullseye-slim
    
    RUN npm config set registry https://registry.npm.taobao.org
    
    RUN npm install pm2 -g
    
    WORKDIR /home/node
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . .
    
    RUN npm run build
    
    ENV NODE_ENV=production
    
    CMD ["pm2-runtime", "start", "/home/node/ecosystem.config.json"]
    

    这里的关键是添加了两个COPY命令和一个RUN命令。第一个COPY命令将package*.json文件复制到容器中,然后运行npm install来安装依赖。第二个COPY命令将整个项目目录复制到容器中。最后运行npm run build来执行Nuxt项目的构建。

    重新构建镜像并运行容器,问题应该得到了解决。

    docker build --no-cache -t nuxt:v2 .
    
    docker run -itd --name nuxtProject -p 3000:3000 -v /home/wwwroot/default:/home/node -v /home/logs:/home/logs nuxt:v2
    
    docker logs nuxtProject
    

    现在,Nuxt项目应该能够在Docker中成功启动而不报错了。

    请注意,由于需要在容器中构建项目,构建时间可能会比较长。另外,确保Dockerfile中的路径与实际Nuxt项目路径保持一致。如果文件结构有所不同,请相应调整路径。

    希望这个解决方案能帮到你。如果还有其他问题,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月12日