dryrm 杀死所有容器的函数,并在运行容器前调用它

This commit is contained in:
zhangkun9038@dingtalk.com 2025-11-27 07:45:42 +08:00
parent 4fb2c194a3
commit 982c93dc12

View File

@ -139,6 +139,30 @@ remove_existing_container() {
fi fi
} }
# 6a. 杀死所有 freqtrade 相关容器
kill_all_freqtrade_containers() {
echo "正在查找并杀死所有 freqtrade 相关容器..." >&2
# 获取所有正在运行的容器
local running_containers=$(docker ps -q --filter 'ancestor=freqtrade')
if [ -z "$running_containers" ]; then
echo "⚠️ 没有找到运行中的 freqtrade 容器" >&2
return
fi
echo "找到 $(echo $running_containers | wc -w) 个运行的 freqtrade 容器,正在停止它们..." >&2
# 停止所有容器
for container_id in $running_containers; do
container_name=$(docker ps -a --filter "id=$container_id" --format '{{.Names}}')
echo "正在停止容器: $container_name ($container_id)" >&2
docker stop "$container_id" >&2 || echo "⚠️ 停止 $container_id 失败" >&2
done
echo "✅ 所有 freqtrade 容器已停止" >&2
}
### 主逻辑区 ### ### 主逻辑区 ###
# 检查 .env 文件 # 检查 .env 文件
@ -306,7 +330,10 @@ CONTAINER_NAME="freqtrade-dryrun-${GIT_COMMIT_SHORT}"
echo "准备启动容器: $CONTAINER_NAME" >&2 echo "准备启动容器: $CONTAINER_NAME" >&2
# 移除已存在的同名容器 # 先杀死所有 freqtrade 容器
kill_all_freqtrade_containers
# 再移除同名容器
remove_existing_container "$CONTAINER_NAME" remove_existing_container "$CONTAINER_NAME"
# 启动新容器 # 启动新容器