You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker Context部署Next.js到远程服务器失败求助

远程Docker Context构建Next.js时SSH连接中断(exit status 255)的排查与解决

可能的原因

  • SSH会话超时:yarn build阶段耗时较长,远程服务器因长时间无SSH活动断开连接
  • Docker Context的SSH配置未启用心跳保持
  • 远程服务器SSH服务默认限制了长连接时长
  • 远程服务器资源不足(内存/CPU),导致Docker daemon在构建过程中响应中断

解决方案

1. 本地SSH配置添加心跳保活

编辑本地~/.ssh/config,为目标服务器添加保活参数:

Host <remote-server-ip>
  User root
  ServerAliveInterval 30
  ServerAliveCountMax 10
  TCPKeepAlive yes

说明:每隔30秒发送一次心跳包,最多尝试10次,确保SSH连接在长时间构建过程中不被断开。

2. 更新Docker Context的SSH参数

直接修改已创建的Docker Context,嵌入SSH保活选项:

docker context update remote --docker "host=ssh://root@<remote-server-ip>?ssh-option=ServerAliveInterval%3D30&ssh-option=ServerAliveCountMax%3D10"

如果是重新创建Context:

docker context create remote --docker "host=ssh://root@<remote-server-ip>?ssh-option=ServerAliveInterval%3D30&ssh-option=ServerAliveCountMax%3D10"

3. 调整远程服务器SSH服务配置

登录远程Ubuntu服务器,编辑/etc/ssh/sshd_config:

ClientAliveInterval 30
ClientAliveCountMax 10
TCPKeepAlive yes

保存后重启SSH服务:

sudo systemctl restart sshd

4. 优化构建过程与资源分配

  • 检查Next.js项目的yarn build任务,移除冗余依赖或构建步骤,缩短构建时间
  • 在docker-compose.yml中为构建服务分配更多资源(如果远程服务器有富余资源):
    version: "3.9"
    services:
      agregator:
        build:
          context: .
          deploy:
            resources:
              limits:
                cpus: '2.0'
                memory: 2G
              reservations:
                cpus: '1.0'
                memory: 1G
        container_name: app
        ports:
          - "3000:3000"
        command: ["yarn", "start"]
    

5. 本地构建后推送镜像到远程

如果以上方法都无法解决,可以绕过远程构建,改为本地构建镜像再推送到远程:

  1. 本地构建镜像:
    docker build -t my-next-app .
    
  2. 将镜像推送到远程Docker daemon:
    docker --context remote image load -i <(docker save my-next-app)
    
  3. 修改docker-compose.yml使用已构建的镜像:
    version: "3.9"
    services:
      agregator:
        image: my-next-app
        container_name: app
        ports:
          - "3000:3000"
        command: ["yarn", "start"]
    
  4. 启动服务:
    docker-compose --context remote up -d
    

内容的提问来源于stack exchange,提问作者Даниэль Сеидов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:42:06