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

如何在Docker中无命令使用Scratch镜像?解决docker-compose运行报错

解决Scratch镜像Docker Compose启动报错:No command specified

为啥会报错?

Scratch是Docker最基础的空镜像,里面啥都没有——没有可执行程序、没有shell,连默认的启动命令都不存在。Docker启动容器时必须明确要执行的指令,没指定的话自然就触发这个报错了。

不用指定命令的解决办法

在你的docker-compose.yml里添加两行配置:tty: true和stdin_open: true。这俩配置会让容器分配一个交互式伪终端,并且保持标准输入打开,以此维持容器运行状态,完全不需要额外指定命令。

修改后的docker-compose.yml代码:

version: '3'
networks:
  common_network:
    name: common_network
    driver: bridge
services:
  app:
    build:
      context: .
      dockerfile: scratch.Dockerfile 
    container_name: apps
    env_file:
      - .env
    tty: true
    stdin_open: true

额外说明

  • 这种方式适合用空容器当网络节点、挂载卷或者做测试环境的场景
  • 要注意:Scratch镜像本身没有shell,就算容器跑起来了,你也没法用docker exec进去执行命令。如果需要shell功能,得在Dockerfile里复制shell文件或者基于带shell的镜像构建。

内容的提问来源于stack exchange,提问作者M a m a D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:00:05