nextjs 有更优雅的自部署方案么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ethusdt
0.01D
V2EX    程序员

nextjs 有更优雅的自部署方案么?

  •  
  •   ethusdt
    FaiChou 6 小时 21 分钟前 1262 次点击

    官方文档 Nextjs Deploying

    用 nextjs 部署到自己服务器有点麻烦的,必须部署到 vercel 这种 serverless 才方便。

    我使用过笨办法,在服务器上克隆整个项目,服务器执行 build ,然后 start ( tmux/screen/systemctl )。

    或者麻烦一点用 docker 打包一个镜像,配置 github action 的 ci ,某个打包分支有提交会自动打包镜像,服务器再 pull 镜像就比较方便了。但还是要折腾一下 ci 和 docker 。

    或者自己本地打包后 rsync 到服务器,但要踩一下 standalone 之类的坑( node runtime 依赖 node_modules )。

    难道就没优雅一点的么?

    web 页面和 server api 都在一块确实好用,对前端入门后端来讲也算个不错的选择。

    14 条回复    2025-12-31 16:32:54 +08:00
    GzhiYi
        1
    GzhiYi  
       6 小时 13 分钟前   1
    github + docker 不是很好了吗?推送后就自动构建部署无感部署
    rocmax
        2
    rocmax  
       6 小时 8 分钟前 via Android
    ethusdt
        3
    ethusdt  
    OP
       6 小时 4 分钟前
    @rocmax 之前这个官方的镜像模板有 Docker volumes 权限问题。不确定是否有改好没。
    NNNNzs
        4
    NNNNzs  
       4 小时 40 分钟前
    @GzhiYi 我就是这么部署的,具体的配置可以参考我的项目
    @ethusdt https://github.com/NNNNzs/react.nnnnzs.cn
    kulove
        5
    kulove  
       4 小时 28 分钟前 via Android
    不太有 我现在 vercel 每月两百刀左右的费用 上个月找了两三种替代方案 比如 railway 都差点意思 有的测试没问题 但生产一切换就不行了
    woodchen
        6
    woodchen  
       4 小时 25 分钟前
    我一般就是 github 打包 docker, nextjs 使用 standalone 模式, 稳定后还是比较方便的. 也可以集成 dokploy 自动构建部署.

    https://www.sunai.net/t/topic/352

    https://github.com/woodchen-ink/ipinfo/blob/master/Dockerfile

    供参考
    doveyoung
        7
    doveyoung  
       4 小时 10 分钟前
    最近才试过,standalone + docker ,Dockerfile 里要注意把静态文件也拷贝一份,用的 node:22-alpine 镜像,最终大小在 300M 。
    在 vercel 部署的话,好像不遵循 standalone ,我单独做了个 build:vercel 的编译命令
    334132462
        8
    334132462  
       2 小时 51 分钟前
    如果能解决网络问题 dokku 是一个很不错的方案
    56way
        9
    56way  
       2 小时 44 分钟前
    我都是免费蹭 cloudflare 的额度,比 vercel 方便多了。。
    lscho
        10
    lscho  
       2 小时 34 分钟前
    github + docker 就是最好的方式
    cqx2005
        11
    cqx2005  
       2 小时 7 分钟前
    frontend:
    container_name: frontend
    command: /bin/bash -c "cd /app && ./node_modules/.bin/next start"
    restart: always
    image: node:20.18.0
    environment:
    TZ: Asia/Shanghai
    NODE_ENV: production
    logging:
    options:
    max-size: "10m"
    max-file: "10"
    ports:
    - "3000:3000"
    volumes:
    - "./frontend:/app"
    C64NRD
        12
    C64NRD  
       1 小时 57 分钟前
    给全栈项目写了个部署的命令行工具( github+docker ) https://nodebbs.com/topic/58
    wuzhanggui
        13
    wuzhanggui  
       1 小时 50 分钟前
    我是前后端一起的,github 上配个 ci ,配的时候是麻烦,但是一劳永逸,提交代码了就部署上去了
    参考我的 https://github.com/wurencaideli/dumogu-admin
    bbbblue
        14
    bbbblue  
       49 分钟前
    我几个全是官方 docker 模版部署的
    但是自己部署就是坑。。
    很多特性自部署是负优化 比如 static 生成(不是全部 static 导出) ppr 这类 缓存相关( vercel 会把他们部署到边缘节点去 自己 docker 部署就全在内存里了) 都会导致内存大量增加。。。一个总共加起来不到 100 个页面,十来个 route 的 nextjs 服务开着这些功能能吃掉上 G 内存。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4548 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 09:22 PVG 17:22 LAX 01:22 JFK 04:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86