官方的文档里写的比较清楚了:

https://nextjs.org/docs/pages/building-your-application/deploying#docker-image

如果是新项目:

Next.js 可以部署到任何支持 Docker 容器的托管服务提供商。在部署到 Kubernetes 等容器编排器或在任何云提供商的容器内运行时,都可以使用这种方法。

  • 在你的机器上安装 Docker
  • 克隆我们的示例(或多环境示例
  • 构建你的容器:docker build -t nextjs-docker .
  • 运行你的容器:docker run -p 3000:3000 nextjs-docker
  • 通过 Docker 运行的 Next.js 支持所有 Next.js 功能。

如果是已经写好了 nextjs 项目,那么需要:

  1. 复制dockerfile到自己的项目根目录 (这个 dockerfile 只针对于纯 nextjs实现的,如果你写的项目里有例如 python,需要自己把 python 的依赖给装上)

  2. next.config.js中设置output: 'standalone'
    也就是

    // next.config.js
    module.exports = {
      // ... rest of the configuration.
      output: 'standalone',
    }
    

另外需要注意的没有public文件夹的时候需要手动创建一个,否则会报错
image.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐