dev.to | 📄 原文链接 | 2026-10-18 收录

Docker Compose 5.6 的 jobs 只能靠 docker compose run 启动

来源:dev.to — 2026-10-16

📋 概述

Compose 5.6.0 在 10 月 2 日发布,新增了与服务并列的顶层 jobs 段落,发布说明只有一句「部分支持:目前仅支持手动触发的作业」。作者想搞清楚声明一个 job 到底会发生什么,第一个发现是文件直接被拒:jobs 条目必须自带 triggers 块,否则连解析都过不了;补上 manual: true 之后才通过校验。接着是行为差异:docker compose up -d 会起 db、跳过 job,只丢一句警告说用 run 触发,退出码还是 0,ps -a 里根本看不到这个 job;create 和 start 则直接拒绝并返回 1。也就是说,五个能让服务出现的命令里,只有 run 碰得到 job。对习惯了声明式的人来说,这是把文档里的未来直接写进了现在的配置。

🔑 核心要点

💡 金句

“A jobs: entry is not just a service with a different label.”
译:一个 jobs: 条目不是换了个标签的服务。
← 返回 dev.to 首页