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

Docker Stack部署后Backend/Frontend服务未分配节点故障排查

Docker Swarm服务部署异常排查求助

问题现象

使用双节点Docker Swarm环境,通过docker stack deploy部署栈服务,某次更新后出现以下异常:

  • 执行docker stack ps project-name,发现backend和frontend服务未分配任何节点
  • 执行docker service ls,显示这两个服务的副本数为0/1

已尝试的操作

  • 手动执行docker service update --replicas=1 project-name_{backend/frontend}更新服务副本数,无效
  • 怀疑本地构建的镜像未推送至镜像仓库导致节点拉取失败,已将backend和frontend镜像推送到私有镜像仓库private.registry.com,且管理节点、工作节点均执行docker login完成仓库登录
  • 尝试添加--force参数强制更新服务,命令执行后陷入停滞状态,输出如下:
ubuntu:~/app$ docker service update --force --replicas=1 project-name_backend 
project-name_backend
overall progress: 0 out of 1 tasks 
1/1: new       [=====>                                             ] 
  • 已搜索Stack Overflow及相关网络资源,现有陈旧问答无法解决问题

Docker Compose配置(部分名称已混淆)

name: spc-app
services:
  backend:
    deploy:
      replicas: 1
      labels:
        traefik.constraint-label: traefik-public
        traefik.docker.network: traefik-public
        traefik.enable: "true"
        traefik.http.routers.spc-backend-http.rule: Host(`backend.spc.com`)
        traefik.http.routers.spc-backend-http.tls: "true"
        traefik.http.routers.spc-backend-http.tls.certresolver: le
        traefik.http.services.spc-backend-http.loadbalancer.server.port: "8000"
    image: private.registry.com/spc/project/backend-prod:latest

  frontend:
    build:
      context: /home/ubuntu/spc-app/frontend
      dockerfile: ./docker/prod/Dockerfile
      args:
        REACT_APP_BACKEND_HTTP: https://backend.spc.com
        REACT_APP_BACKEND_WS: wss://backend.spc.com/ws
    depends_on:
      backend:
        condition: service_started
    deploy:
      replicas: 1
      labels:
        traefik.constraint-label: traefik-public
        traefik.docker.network: traefik-public
        traefik.enable: "true"
        traefik.http.routers.spc-frontend-http.rule: Host(`www.spc.com`)
        traefik.http.routers.spc-frontend-http.tls: "true"
        traefik.http.routers.spc-frontend-http.tls.certresolver: le
        traefik.http.services.spc-frontend-http.loadbalancer.server.port: "80"
    image: private.registry.com/spc/project/frontend-prod:latest
    networks:
      default: null
      traefik-public: null

networks:
  default:
    name: spc-app_default
  postgres:
    name: postgres
    external: true
  traefik-public:
    name: traefik-public
    external: true
volumes:
  mediafiles:
    name: spc-app_mediafiles
  staticfiles:
    name: spc-app_staticfiles

内容的提问来源于stack exchange,提问作者Sifnos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:42:30