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

Bash脚本实现Docker-Compose多文件动态启停功能需求

合并Docker Compose启停脚本并实现批量操作

以下是满足需求的compose.sh脚本,支持通过up/down参数执行对应操作,并自动遍历指定目录下的所有YAML文件:

#!/bin/bash

# 定义Docker Compose文件目录
COMPOSE_DIR="/home/home/compose"

# 检查命令参数
if [[ "$1" != "up" && "$1" != "down" ]]; then
    echo "用法: $0 [up|down]"
    exit 1
fi

# 检查目标目录是否存在
if [[ ! -d "$COMPOSE_DIR" ]]; then
    echo "错误: 目录 $COMPOSE_DIR 不存在"
    exit 1
fi

# 开启nullglob,避免无匹配文件时输出*.yml
shopt -s nullglob

# 遍历目录下所有yml文件执行对应操作
for yml_file in "$COMPOSE_DIR"/*.yml; do
    echo "正在处理文件: $yml_file"
    docker-compose -f "$yml_file" "$1" -d
done

# 关闭nullglob(可选,恢复默认行为)
shopt -u nullglob

关键说明

  • 参数校验:脚本会先检查传入的参数是否为up或down,否则输出用法并退出
  • 目录检查:确保目标YAML文件目录存在,避免后续操作报错
  • 批量处理:通过nullglob选项处理无匹配文件的情况,遍历所有.yml文件并执行docker-compose命令,-d参数用于后台启动(如果不需要后台运行可以移除)
  • 权限设置:创建脚本后记得赋予执行权限:chmod +x compose.sh

使用方法

# 启动所有Compose服务
./compose.sh up

# 停止所有Compose服务
./compose.sh down

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:04:54