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

如何在单终端下与Docker Compose的test服务进行交互式操作?

解决docker-compose up启动Jest测试服务无法交互的问题

可以用单个终端直接与test服务交互,核心是让docker compose up把终端的输入输出绑定到指定的test服务,具体方法如下:

  • 使用--attach参数指定绑定test服务
    运行以下命令启动所有服务,但仅将当前终端的stdin/stdout绑定到test服务:

    sudo docker compose up --attach test
    

    启动后就能直接在当前终端和Jest交互(按a运行全部、p筛选文件等操作都能正常工作),其他服务(比如dev)会在后台正常运行,它们的日志不会干扰当前终端的交互。

  • 为什么默认的docker-compose up无法交互?
    docker compose up默认会将终端attach到所有启动的服务,此时系统无法把stdin同时分配给多个容器,所以即使test服务开了stdin_open: true和tty: true,也没法接收你的输入。而--attach test明确指定只绑定test服务,stdin就会直接传递给它,自然就能交互了。

  • 额外说明
    如果你只需要启动test服务(不需要同时运行dev),直接运行sudo docker compose up test也能实现终端交互,原理和上面一致——此时只有test一个服务被attach。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:31:11