如何在Docker Compose的Windows容器中运行多条命令?
正确配置方法
方法1:用&分隔多条命令(推荐)
在Windows的cmd环境中,&用于分隔多条命令,无论前一条是否执行成功都会继续执行。如果需要前一条命令执行成功后才运行下一条,可改用&&。
字符串形式写法
entrypoint: ["cmd", "/C"] command: "echo Hello & echo World"
数组形式写法
entrypoint: ["cmd", "/C"] command: ["echo", "Hello", "&", "echo", "World"]
方法2:保留多行格式(用^转义换行)
如果希望配置保持多行可读性,需要在每行末尾添加cmd的换行转义符^,同时适配YAML格式:
command: cmd /C ^"^ echo Hello ^&^ echo World^"
也可以用YAML的块标量|保留换行结构:
command: | cmd /C "echo Hello ^ & echo World"
方法3:使用bat脚本(适合复杂命令场景)
如果命令数量多或包含复杂逻辑,建议编写.bat脚本挂载到容器中执行:
- 本地创建
startup.bat文件:
echo Hello echo World
- 在
docker-compose.yml中配置挂载并执行:
services: your-service: # 其他容器配置 volumes: - ./startup.bat:/startup.bat command: cmd /C "startup.bat"
内容的提问来源于stack exchange,提问作者Michael K.
相关产品推荐
相关产品推荐

