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

Docker Compose Watch执行`up --watch`重启容器时报context canceled错误但`docker compose watch`正常的问题求助

Docker Compose Watch执行up --watch重启容器时报context canceled错误但docker compose watch正常的问题求助

大家好,我最近在开发一个Go应用,想通过Docker Compose Watch实现热重载来提升开发效率。之前在其他项目里用这套流程都很顺畅,但这个项目里碰到了一个诡异的问题:

问题现象

  • 当我执行docker compose up --watch时,修改代码触发文件变更后,容器确实会重启(从docker compose logs里能看到main函数的打印信息出现了两次),但Watch进程会直接报下面的错误然后退出:
WARN[0012] Error handling changed files: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.51/containers/32fa54d8e4c772c25479d78e1e09f66c88af18f590bea73f7b12dbd5ae7bd261/restart": context canceled
  • 但如果我直接执行docker compose watch,文件变更后容器能正常重启,完全不会出现上面的错误,日志也能正常看到两次打印。
  • 这个问题只在当前项目出现,我其他用同样热重载策略的Go项目完全没这个问题。而且我在工作笔记本上跑这个项目的代码,up --watch也能正常工作,只有我本地机器会报错。

排查过的尝试

  1. 网上看到说context canceled可能是因为监听的文件数量太多,但这个项目的文件量比我其他正常工作的项目还少,而且我还加了.dockerignore忽略了.git目录,问题依然存在。
  2. 试过修改挂载方式:从把本地代码挂载到容器里+restart的方式,改成其他同步策略,结果还是一样的错误。
  3. 用docker compose watch命令完全正常,说明Watch的逻辑本身是通的,只是up --watch的组合出了问题?

相关代码文件

main.go

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("turtle5")
    for {
        time.Sleep(10)
    }
}

Dockerfile

FROM golang:alpine3.22 AS builder
WORKDIR /app
COPY . /app/
RUN go mod download;
RUN go build -o turtle

FROM alpine:latest AS runner
WORKDIR /app
COPY --from=builder /app/turtle /app/
CMD ["./turtle"]

docker-compose.yaml

services:
  turtle:
    build:
      context: .
      dockerfile: Dockerfile

docker-compose.override.yaml

services:
  turtle:
    build:
      context: ./
      target: builder
    volumes:
      - ./:/app
    command:
      - go
      - run
      - main.go
    develop:
      watch:
        - path: .
          action: restart

环境版本

  • Docker版本:28.3.3
  • Docker Compose版本:2.39.1

有没有大佬遇到过类似的情况?或者能帮我分析下为什么docker compose up --watch和docker compose watch的表现会不一致,以及怎么解决这个context canceled导致Watch退出的问题?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 07:54:34