553 lines
20 KiB
Diff
553 lines
20 KiB
Diff
From 839ae28297f1db876b215f65f801cd18c0226c90 Mon Sep 17 00:00:00 2001
|
||
From: "zhangkun9038@dingtalk.com" <zhangkun9038@dingtalk.com>
|
||
Date: Fri, 2 Jan 2026 20:39:20 +0800
|
||
Subject: [PATCH 1/6] =?UTF-8?q?dryrun,=20live=E6=97=B6,=20=E5=AE=B9?=
|
||
=?UTF-8?q?=E5=99=A8=E5=90=8D=E5=AD=97=E9=87=8C=E5=8C=85=E5=90=ABcommitid?=
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
---
|
||
tools/dryrun.sh | 55 ++++++++++++++++++++++++++++---------------------
|
||
tools/live.sh | 49 +++++++++++++++++++++----------------------
|
||
2 files changed, 56 insertions(+), 48 deletions(-)
|
||
|
||
diff --git a/tools/dryrun.sh b/tools/dryrun.sh
|
||
index 2825b9a5..a3c3a861 100755
|
||
--- a/tools/dryrun.sh
|
||
+++ b/tools/dryrun.sh
|
||
@@ -113,30 +113,38 @@ update_live_json_pair_whitelist() {
|
||
|
||
# 6. 停止并移除指定名称的容器
|
||
remove_existing_container() {
|
||
- local container_name="$1"
|
||
-
|
||
- if [ -z "$container_name" ]; then
|
||
- echo "⚠️ 容器名称为空,跳过移除操作" >&2
|
||
+ local mode="$1" # dryrun 或 live
|
||
+
|
||
+ echo "正在查找并移除所有 'freqtrade-${mode}-*' 的容器..." >&2
|
||
+
|
||
+ # 查找所有名称以 freqtrade-${mode}- 开头的容器
|
||
+ CONTAINERS=$(docker ps -aq --filter "name=freqtrade-${mode}-")
|
||
+
|
||
+ if [ -z "$CONTAINERS" ]; then
|
||
+ echo "✅ 未找到任何 'freqtrade-${mode}-*' 的容器" >&2
|
||
return
|
||
fi
|
||
|
||
- # 检查容器是否存在
|
||
- if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then
|
||
- echo "发现同名容器 $container_name,正在停止并移除..." >&2
|
||
- # 停止容器
|
||
- if ! docker stop "$container_name" >&2; then
|
||
- echo "⚠️ 停止容器 $container_name 失败,尝试强制移除..." >&2
|
||
- fi
|
||
- # 移除容器
|
||
- if docker rm "$container_name" >&2; then
|
||
- echo "✅ 已成功移除容器 $container_name" >&2
|
||
+ echo "找到以下容器:" >&2
|
||
+ docker ps -a --filter "name=freqtrade-${mode}-" --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" >&2
|
||
+
|
||
+ echo "正在自动移除所有符合条件的容器..." >&2
|
||
+
|
||
+ # 停止并移除容器
|
||
+ for CONTAINER in $CONTAINERS; do
|
||
+ CONTAINER_NAME=$(docker ps -a --filter "id=$CONTAINER" --format "{{.Names}}")
|
||
+ echo "正在停止容器 $CONTAINER_NAME..." >&2
|
||
+ docker stop "$CONTAINER" >/dev/null 2>&1
|
||
+
|
||
+ echo "正在移除容器 $CONTAINER_NAME..." >&2
|
||
+ if docker rm "$CONTAINER" >/dev/null 2>&1; then
|
||
+ echo "✅ 已成功移除容器 $CONTAINER_NAME" >&2
|
||
else
|
||
- echo "❌ 移除容器 $container_name 失败,请手动处理" >&2
|
||
- exit 1
|
||
+ echo "⚠️ 移除容器 $CONTAINER_NAME 失败" >&2
|
||
fi
|
||
- else
|
||
- echo "未发现同名容器 $container_name,无需移除" >&2
|
||
- fi
|
||
+ done
|
||
+
|
||
+ echo "✅ 容器清理完成" >&2
|
||
}
|
||
|
||
### 主逻辑区 ###
|
||
@@ -229,15 +237,16 @@ update_live_json_pair_whitelist "../config_examples/live.json" "$merged_pairs"
|
||
### 启动容器 ###
|
||
|
||
GIT_COMMIT_SHORT=$(git rev-parse HEAD | cut -c 1-8)
|
||
-CONTAINER_NAME="freqtrade-dryrun-${GIT_COMMIT_SHORT}"
|
||
+RANDOM_ID=$(head /dev/urandom | tr -dc a-z0-9 | head -c 6)
|
||
+CONTAINER_NAME="freqtrade-dryrun-${GIT_COMMIT_SHORT}-${RANDOM_ID}"
|
||
|
||
echo "准备启动容器: $CONTAINER_NAME" >&2
|
||
|
||
-# 移除已存在的同名容器
|
||
-remove_existing_container "$CONTAINER_NAME"
|
||
+# 移除所有 dryrun 相关的旧容器
|
||
+remove_existing_container "dryrun"
|
||
|
||
# 启动新容器
|
||
-docker-compose run -d --rm --name freqtrade-dryrun-${GIT_COMMIT_SHORT} -p 8080:8080 freqtrade trade \
|
||
+docker-compose run -d --rm --name "${CONTAINER_NAME}" -p 8080:8080 freqtrade trade \
|
||
$PAIRS_FLAG \
|
||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||
diff --git a/tools/live.sh b/tools/live.sh
|
||
index 94b1def2..79b9290a 100755
|
||
--- a/tools/live.sh
|
||
+++ b/tools/live.sh
|
||
@@ -6,40 +6,38 @@ set -e # 出错立即停止
|
||
|
||
# 定义 remove_existing_containers 函数
|
||
remove_existing_containers() {
|
||
- echo "正在查找并移除所有名称符合 'freqtrade-dryrun-*' 的容器..."
|
||
+ local mode="$1" # dryrun 或 live
|
||
+
|
||
+ echo "正在查找并移除所有 'freqtrade-${mode}-*' 的容器..." >&2
|
||
|
||
- # 查找所有名称以 freqtrade-dryrun- 开头的容器
|
||
- CONTAINERS=$(docker ps -aq --filter "name=freqtrade-dryrun-*")
|
||
+ # 查找所有名称以 freqtrade-${mode}- 开头的容器
|
||
+ CONTAINERS=$(docker ps -aq --filter "name=freqtrade-${mode}-")
|
||
+
|
||
if [ -z "$CONTAINERS" ]; then
|
||
- echo "未找到任何名称符合 'freqtrade-dryrun-*' 的容器。"
|
||
+ echo "✅ 未找到任何 'freqtrade-${mode}-*' 的容器" >&2
|
||
return
|
||
fi
|
||
|
||
- echo "找到以下容器:"
|
||
- docker ps -a --filter "name=freqtrade-dryrun-*"
|
||
+ echo "找到以下容器:" >&2
|
||
+ docker ps -a --filter "name=freqtrade-${mode}-" --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" >&2
|
||
|
||
- echo "正在自动移除所有符合条件的容器..."
|
||
+ echo "正在自动移除所有符合条件的容器..." >&2
|
||
|
||
# 停止并移除容器
|
||
for CONTAINER in $CONTAINERS; do
|
||
- echo "正在停止容器 $CONTAINER..."
|
||
+ CONTAINER_NAME=$(docker ps -a --filter "id=$CONTAINER" --format "{{.Names}}")
|
||
+ echo "正在停止容器 $CONTAINER_NAME..." >&2
|
||
docker stop "$CONTAINER" >/dev/null 2>&1
|
||
- if [ $? -ne 0 ]; then
|
||
- echo "警告:无法停止容器 $CONTAINER。"
|
||
- continue
|
||
- fi
|
||
-
|
||
- echo "正在移除容器 $CONTAINER..."
|
||
- docker rm "$CONTAINER" >/dev/null 2>&1
|
||
- if [ $? -ne 0 ]; then
|
||
- echo "警告:无法移除容器 $CONTAINER。"
|
||
- continue
|
||
+
|
||
+ echo "正在移除容器 $CONTAINER_NAME..." >&2
|
||
+ if docker rm "$CONTAINER" >/dev/null 2>&1; then
|
||
+ echo "✅ 已成功移除容器 $CONTAINER_NAME" >&2
|
||
+ else
|
||
+ echo "⚠️ 移除容器 $CONTAINER_NAME 失败" >&2
|
||
fi
|
||
-
|
||
- echo "容器 $CONTAINER 已成功移除。"
|
||
done
|
||
-
|
||
- echo "所有符合条件的容器已处理完毕。"
|
||
+
|
||
+ echo "✅ 容器清理完成" >&2
|
||
}
|
||
|
||
# 1. 从SQLite数据库获取当前开放交易的币对列表
|
||
@@ -207,12 +205,13 @@ fi
|
||
### 启动容器 ###
|
||
|
||
GIT_COMMIT_SHORT=$(git rev-parse HEAD | cut -c 1-8)
|
||
-CONTAINER_NAME="freqtrade-dryrun-${GIT_COMMIT_SHORT}"
|
||
+RANDOM_ID=$(head /dev/urandom | tr -dc a-z0-9 | head -c 6)
|
||
+CONTAINER_NAME="freqtrade-live-${GIT_COMMIT_SHORT}-${RANDOM_ID}"
|
||
|
||
echo "准备启动容器: $CONTAINER_NAME" >&2
|
||
|
||
-# 移除已存在的同名容器
|
||
-remove_existing_containers "$CONTAINER_NAME"
|
||
+# 移除所有 live 相关的旧容器
|
||
+remove_existing_containers "live"
|
||
|
||
# 清理临时文件放置交叉感染
|
||
cd ../
|
||
--
|
||
2.50.1 (Apple Git-155)
|
||
|
||
|
||
From f47f557e23b65a39df5a4a275881283d29b9ae9a Mon Sep 17 00:00:00 2001
|
||
From: "zhangkun9038@dingtalk.com" <zhangkun9038@dingtalk.com>
|
||
Date: Fri, 2 Jan 2026 20:51:31 +0800
|
||
Subject: [PATCH 2/6] =?UTF-8?q?dryrun,=20live=E6=97=B6,=20=E5=AE=B9?=
|
||
=?UTF-8?q?=E5=99=A8=E5=90=8D=E5=AD=97=E9=87=8C=E5=8C=85=E5=90=ABcommitid?=
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
---
|
||
tools/dryrun.sh | 19 +++++++++++++++++--
|
||
tools/live.sh | 20 ++++++++++++++++----
|
||
2 files changed, 33 insertions(+), 6 deletions(-)
|
||
|
||
diff --git a/tools/dryrun.sh b/tools/dryrun.sh
|
||
index a3c3a861..03ae40d5 100755
|
||
--- a/tools/dryrun.sh
|
||
+++ b/tools/dryrun.sh
|
||
@@ -245,8 +245,23 @@ echo "准备启动容器: $CONTAINER_NAME" >&2
|
||
# 移除所有 dryrun 相关的旧容器
|
||
remove_existing_container "dryrun"
|
||
|
||
-# 启动新容器
|
||
-docker-compose run -d --rm --name "${CONTAINER_NAME}" -p 8080:8080 freqtrade trade \
|
||
+# 启动新容器(使用 docker run 确保 --name 参数生效)
|
||
+docker run -d --rm \
|
||
+ --name "${CONTAINER_NAME}" \
|
||
+ -p 8080:8080 \
|
||
+ --extra-host "www.okx.com:104.18.43.174" \
|
||
+ --extra-host "api.okx.com:104.18.43.174" \
|
||
+ -v "$(pwd)/../user_data:/freqtrade/user_data" \
|
||
+ -v "$(pwd)/../config_examples:/freqtrade/config_examples" \
|
||
+ -v "$(pwd)/../freqtrade/templates:/freqtrade/templates" \
|
||
+ -v "$(pwd)/../freqtrade/exchange:/freqtrade/exchange" \
|
||
+ -v "$(pwd)/../freqtrade/plugins/protections:/freqtrade/freqtrade/plugins/protections" \
|
||
+ -v "$(pwd)/../ccxt/async_support/okx.py:/home/ftuser/.local/lib/python3.12/site-packages/ccxt/async_support/okx.py" \
|
||
+ -v "$(pwd)/../freqtrade/freqai/data_kitchen.py:/freqtrade/freqai/data_kitchen.py" \
|
||
+ -v "$(pwd)/../freqtrade/freqai/data_drawer.py:/freqtrade/freqai/data_drawer.py" \
|
||
+ -v "$(pwd)/../freqtrade/freqai/freqai_interface.py:/freqtrade/freqai/freqai_interface.py" \
|
||
+ freqtradeorg/freqtrade:develop_freqai_withredis \
|
||
+ trade \
|
||
$PAIRS_FLAG \
|
||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||
diff --git a/tools/live.sh b/tools/live.sh
|
||
index 79b9290a..d88e159e 100755
|
||
--- a/tools/live.sh
|
||
+++ b/tools/live.sh
|
||
@@ -221,12 +221,24 @@ rm -rf ./freqtrade/user_data/data/backtest_results/*
|
||
rm -fr ./user_data/dryrun_results/*
|
||
cd -
|
||
|
||
-# 启动新容器
|
||
+# 启动新容器(使用 docker run 确保 --name 参数生效)
|
||
echo "启动容器: $CONTAINER_NAME" >&2
|
||
-docker-compose run -d --rm \
|
||
- --name "$CONTAINER_NAME" \
|
||
+docker run -d --rm \
|
||
+ --name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
- freqtrade trade \
|
||
+ --extra-host "www.okx.com:104.18.43.174" \
|
||
+ --extra-host "api.okx.com:104.18.43.174" \
|
||
+ -v "$(pwd)/../user_data:/freqtrade/user_data" \
|
||
+ -v "$(pwd)/../config_examples:/freqtrade/config_examples" \
|
||
+ -v "$(pwd)/../freqtrade/templates:/freqtrade/templates" \
|
||
+ -v "$(pwd)/../freqtrade/exchange:/freqtrade/exchange" \
|
||
+ -v "$(pwd)/../freqtrade/plugins/protections:/freqtrade/freqtrade/plugins/protections" \
|
||
+ -v "$(pwd)/../ccxt/async_support/okx.py:/home/ftuser/.local/lib/python3.12/site-packages/ccxt/async_support/okx.py" \
|
||
+ -v "$(pwd)/../freqtrade/freqai/data_kitchen.py:/freqtrade/freqai/data_kitchen.py" \
|
||
+ -v "$(pwd)/../freqtrade/freqai/data_drawer.py:/freqtrade/freqai/data_drawer.py" \
|
||
+ -v "$(pwd)/../freqtrade/freqai/freqai_interface.py:/freqtrade/freqai/freqai_interface.py" \
|
||
+ freqtradeorg/freqtrade:develop_freqai_withredis \
|
||
+ trade \
|
||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||
--freqaimodel LightGBMRegressorMultiTarget \
|
||
--
|
||
2.50.1 (Apple Git-155)
|
||
|
||
|
||
From 99aa1e282d19f21079d43b14e9d856ee4b839355 Mon Sep 17 00:00:00 2001
|
||
From: "zhangkun9038@dingtalk.com" <zhangkun9038@dingtalk.com>
|
||
Date: Fri, 2 Jan 2026 21:01:10 +0800
|
||
Subject: [PATCH 3/6] =?UTF-8?q?dryrun,=20live=E6=97=B6,=20=E5=AE=B9?=
|
||
=?UTF-8?q?=E5=99=A8=E5=90=8D=E5=AD=97=E9=87=8C=E5=8C=85=E5=90=ABcommitid?=
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
---
|
||
tools/dryrun.sh | 22 +++++++++++++---------
|
||
tools/live.sh | 23 +++++++++++++----------
|
||
2 files changed, 26 insertions(+), 19 deletions(-)
|
||
|
||
diff --git a/tools/dryrun.sh b/tools/dryrun.sh
|
||
index 03ae40d5..cff51a83 100755
|
||
--- a/tools/dryrun.sh
|
||
+++ b/tools/dryrun.sh
|
||
@@ -236,17 +236,19 @@ update_live_json_pair_whitelist "../config_examples/live.json" "$merged_pairs"
|
||
|
||
### 启动容器 ###
|
||
|
||
+# 第1步:先清理所有旧容器
|
||
+echo "正在清理所有 dryrun 旧容器..." >&2
|
||
+remove_existing_container "dryrun"
|
||
+
|
||
+# 第2步:生成新容器名
|
||
GIT_COMMIT_SHORT=$(git rev-parse HEAD | cut -c 1-8)
|
||
RANDOM_ID=$(head /dev/urandom | tr -dc a-z0-9 | head -c 6)
|
||
CONTAINER_NAME="freqtrade-dryrun-${GIT_COMMIT_SHORT}-${RANDOM_ID}"
|
||
-
|
||
echo "准备启动容器: $CONTAINER_NAME" >&2
|
||
|
||
-# 移除所有 dryrun 相关的旧容器
|
||
-remove_existing_container "dryrun"
|
||
-
|
||
-# 启动新容器(使用 docker run 确保 --name 参数生效)
|
||
-docker run -d --rm \
|
||
+# 第3步:启动新容器
|
||
+echo "正在启动新容器..." >&2
|
||
+CONTAINER_ID=$(docker run -d --rm \
|
||
--name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
--extra-host "www.okx.com:104.18.43.174" \
|
||
@@ -270,11 +272,13 @@ docker run -d --rm \
|
||
--config /freqtrade/config_examples/$CONFIG_FILE \
|
||
--strategy $STRATEGY_NAME \
|
||
--fee 0.0008 \
|
||
- --strategy-path /freqtrade/templates
|
||
+ --strategy-path /freqtrade/templates 2>&1)
|
||
|
||
-if [ $? -eq 0 ]; then
|
||
- echo "✅ 容器 $CONTAINER_NAME 启动完成" >&2
|
||
+if [ $? -eq 0 ] && [ -n "$CONTAINER_ID" ]; then
|
||
+ echo "✅ 容器 $CONTAINER_NAME 启动成功 (ID: ${CONTAINER_ID:0:12})" >&2
|
||
+ echo "⚡ 查看日志: docker logs -f $CONTAINER_NAME" >&2
|
||
else
|
||
echo "❌ 容器启动失败" >&2
|
||
+ echo "错误信息: $CONTAINER_ID" >&2
|
||
exit 1
|
||
fi
|
||
diff --git a/tools/live.sh b/tools/live.sh
|
||
index d88e159e..e57dbb62 100755
|
||
--- a/tools/live.sh
|
||
+++ b/tools/live.sh
|
||
@@ -204,15 +204,16 @@ fi
|
||
|
||
### 启动容器 ###
|
||
|
||
+# 第1步:先清理所有旧容器
|
||
+echo "正在清理所有 live 旧容器..." >&2
|
||
+remove_existing_containers "live"
|
||
+
|
||
+# 第2步:生成新容器名
|
||
GIT_COMMIT_SHORT=$(git rev-parse HEAD | cut -c 1-8)
|
||
RANDOM_ID=$(head /dev/urandom | tr -dc a-z0-9 | head -c 6)
|
||
CONTAINER_NAME="freqtrade-live-${GIT_COMMIT_SHORT}-${RANDOM_ID}"
|
||
-
|
||
echo "准备启动容器: $CONTAINER_NAME" >&2
|
||
|
||
-# 移除所有 live 相关的旧容器
|
||
-remove_existing_containers "live"
|
||
-
|
||
# 清理临时文件放置交叉感染
|
||
cd ../
|
||
source .venv/bin/activate
|
||
@@ -221,9 +222,9 @@ rm -rf ./freqtrade/user_data/data/backtest_results/*
|
||
rm -fr ./user_data/dryrun_results/*
|
||
cd -
|
||
|
||
-# 启动新容器(使用 docker run 确保 --name 参数生效)
|
||
-echo "启动容器: $CONTAINER_NAME" >&2
|
||
-docker run -d --rm \
|
||
+# 第3步:启动新容器
|
||
+echo "正在启动新容器..." >&2
|
||
+CONTAINER_ID=$(docker run -d --rm \
|
||
--name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
--extra-host "www.okx.com:104.18.43.174" \
|
||
@@ -247,11 +248,13 @@ docker run -d --rm \
|
||
--config /freqtrade/templates/${PARAMS_NAME}.json \
|
||
--config /freqtrade/config_examples/live.json \
|
||
--strategy $STRATEGY_NAME \
|
||
- --strategy-path /freqtrade/templates
|
||
+ --strategy-path /freqtrade/templates 2>&1)
|
||
|
||
-if [ $? -eq 0 ]; then
|
||
- echo "✅ 容器 $CONTAINER_NAME 启动完成" >&2
|
||
+if [ $? -eq 0 ] && [ -n "$CONTAINER_ID" ]; then
|
||
+ echo "✅ 容器 $CONTAINER_NAME 启动成功 (ID: ${CONTAINER_ID:0:12})" >&2
|
||
+ echo "⚡ 查看日志: docker logs -f $CONTAINER_NAME" >&2
|
||
else
|
||
echo "❌ 容器启动失败" >&2
|
||
+ echo "错误信息: $CONTAINER_ID" >&2
|
||
exit 1
|
||
fi
|
||
\ No newline at end of file
|
||
--
|
||
2.50.1 (Apple Git-155)
|
||
|
||
|
||
From 674b07e364cc9ebdd7c321d3da24eb987baa28fb Mon Sep 17 00:00:00 2001
|
||
From: "zhangkun9038@dingtalk.com" <zhangkun9038@dingtalk.com>
|
||
Date: Fri, 2 Jan 2026 21:18:01 +0800
|
||
Subject: [PATCH 4/6] =?UTF-8?q?dryrun,=20live=E6=97=B6,=20=E5=AE=B9?=
|
||
=?UTF-8?q?=E5=99=A8=E5=90=8D=E5=AD=97=E9=87=8C=E5=8C=85=E5=90=ABcommitid?=
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
---
|
||
tools/dryrun.sh | 1 -
|
||
1 file changed, 1 deletion(-)
|
||
|
||
diff --git a/tools/dryrun.sh b/tools/dryrun.sh
|
||
index cff51a83..b78f6792 100755
|
||
--- a/tools/dryrun.sh
|
||
+++ b/tools/dryrun.sh
|
||
@@ -264,7 +264,6 @@ CONTAINER_ID=$(docker run -d --rm \
|
||
-v "$(pwd)/../freqtrade/freqai/freqai_interface.py:/freqtrade/freqai/freqai_interface.py" \
|
||
freqtradeorg/freqtrade:develop_freqai_withredis \
|
||
trade \
|
||
- $PAIRS_FLAG \
|
||
--logfile /freqtrade/user_data/logs/freqtrade.log \
|
||
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \
|
||
--dry-run \
|
||
--
|
||
2.50.1 (Apple Git-155)
|
||
|
||
|
||
From dbafed81b2645378eabc131066793d22baafadb7 Mon Sep 17 00:00:00 2001
|
||
From: "zhangkun9038@dingtalk.com" <zhangkun9038@dingtalk.com>
|
||
Date: Fri, 2 Jan 2026 21:25:12 +0800
|
||
Subject: [PATCH 5/6] =?UTF-8?q?dryrun,=20live=E6=97=B6,=20=E5=AE=B9?=
|
||
=?UTF-8?q?=E5=99=A8=E5=90=8D=E5=AD=97=E9=87=8C=E5=8C=85=E5=90=ABcommitid?=
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
---
|
||
tools/dryrun.sh | 16 ++++++++++------
|
||
tools/live.sh | 16 ++++++++++------
|
||
2 files changed, 20 insertions(+), 12 deletions(-)
|
||
|
||
diff --git a/tools/dryrun.sh b/tools/dryrun.sh
|
||
index b78f6792..bf54d356 100755
|
||
--- a/tools/dryrun.sh
|
||
+++ b/tools/dryrun.sh
|
||
@@ -248,7 +248,10 @@ echo "准备启动容器: $CONTAINER_NAME" >&2
|
||
|
||
# 第3步:启动新容器
|
||
echo "正在启动新容器..." >&2
|
||
-CONTAINER_ID=$(docker run -d --rm \
|
||
+
|
||
+# 临时禁用 set -e,以便捕获 docker run 的错误
|
||
+set +e
|
||
+docker run -d --rm \
|
||
--name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
--extra-host "www.okx.com:104.18.43.174" \
|
||
@@ -271,13 +274,14 @@ CONTAINER_ID=$(docker run -d --rm \
|
||
--config /freqtrade/config_examples/$CONFIG_FILE \
|
||
--strategy $STRATEGY_NAME \
|
||
--fee 0.0008 \
|
||
- --strategy-path /freqtrade/templates 2>&1)
|
||
+ --strategy-path /freqtrade/templates
|
||
+RUN_RESULT=$?
|
||
+set -e # 恢复 set -e
|
||
|
||
-if [ $? -eq 0 ] && [ -n "$CONTAINER_ID" ]; then
|
||
- echo "✅ 容器 $CONTAINER_NAME 启动成功 (ID: ${CONTAINER_ID:0:12})" >&2
|
||
+if [ $RUN_RESULT -eq 0 ]; then
|
||
+ echo "✅ 容器 $CONTAINER_NAME 启动成功" >&2
|
||
echo "⚡ 查看日志: docker logs -f $CONTAINER_NAME" >&2
|
||
else
|
||
- echo "❌ 容器启动失败" >&2
|
||
- echo "错误信息: $CONTAINER_ID" >&2
|
||
+ echo "❌ 容器启动失败 (退出码: $RUN_RESULT),请查看上方错误信息" >&2
|
||
exit 1
|
||
fi
|
||
diff --git a/tools/live.sh b/tools/live.sh
|
||
index e57dbb62..eec1e173 100755
|
||
--- a/tools/live.sh
|
||
+++ b/tools/live.sh
|
||
@@ -224,7 +224,10 @@ cd -
|
||
|
||
# 第3步:启动新容器
|
||
echo "正在启动新容器..." >&2
|
||
-CONTAINER_ID=$(docker run -d --rm \
|
||
+
|
||
+# 临时禁用 set -e,以便捕获 docker run 的错误
|
||
+set +e
|
||
+docker run -d --rm \
|
||
--name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
--extra-host "www.okx.com:104.18.43.174" \
|
||
@@ -248,13 +251,14 @@ CONTAINER_ID=$(docker run -d --rm \
|
||
--config /freqtrade/templates/${PARAMS_NAME}.json \
|
||
--config /freqtrade/config_examples/live.json \
|
||
--strategy $STRATEGY_NAME \
|
||
- --strategy-path /freqtrade/templates 2>&1)
|
||
+ --strategy-path /freqtrade/templates
|
||
+RUN_RESULT=$?
|
||
+set -e # 恢复 set -e
|
||
|
||
-if [ $? -eq 0 ] && [ -n "$CONTAINER_ID" ]; then
|
||
- echo "✅ 容器 $CONTAINER_NAME 启动成功 (ID: ${CONTAINER_ID:0:12})" >&2
|
||
+if [ $RUN_RESULT -eq 0 ]; then
|
||
+ echo "✅ 容器 $CONTAINER_NAME 启动成功" >&2
|
||
echo "⚡ 查看日志: docker logs -f $CONTAINER_NAME" >&2
|
||
else
|
||
- echo "❌ 容器启动失败" >&2
|
||
- echo "错误信息: $CONTAINER_ID" >&2
|
||
+ echo "❌ 容器启动失败 (退出码: $RUN_RESULT),请查看上方错误信息" >&2
|
||
exit 1
|
||
fi
|
||
\ No newline at end of file
|
||
--
|
||
2.50.1 (Apple Git-155)
|
||
|
||
|
||
From b72e430d54ba4fde2a1c6b98c0c901afb8c3b69c Mon Sep 17 00:00:00 2001
|
||
From: "zhangkun9038@dingtalk.com" <zhangkun9038@dingtalk.com>
|
||
Date: Fri, 2 Jan 2026 21:27:54 +0800
|
||
Subject: [PATCH 6/6] =?UTF-8?q?dryrun,=20live=E6=97=B6,=20=E5=AE=B9?=
|
||
=?UTF-8?q?=E5=99=A8=E5=90=8D=E5=AD=97=E9=87=8C=E5=8C=85=E5=90=ABcommitid?=
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
---
|
||
tools/dryrun.sh | 4 ++--
|
||
tools/live.sh | 4 ++--
|
||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||
|
||
diff --git a/tools/dryrun.sh b/tools/dryrun.sh
|
||
index bf54d356..ef8c7156 100755
|
||
--- a/tools/dryrun.sh
|
||
+++ b/tools/dryrun.sh
|
||
@@ -254,8 +254,8 @@ set +e
|
||
docker run -d --rm \
|
||
--name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
- --extra-host "www.okx.com:104.18.43.174" \
|
||
- --extra-host "api.okx.com:104.18.43.174" \
|
||
+ --add-host "www.okx.com:104.18.43.174" \
|
||
+ --add-host "api.okx.com:104.18.43.174" \
|
||
-v "$(pwd)/../user_data:/freqtrade/user_data" \
|
||
-v "$(pwd)/../config_examples:/freqtrade/config_examples" \
|
||
-v "$(pwd)/../freqtrade/templates:/freqtrade/templates" \
|
||
diff --git a/tools/live.sh b/tools/live.sh
|
||
index eec1e173..6ff39d95 100755
|
||
--- a/tools/live.sh
|
||
+++ b/tools/live.sh
|
||
@@ -230,8 +230,8 @@ set +e
|
||
docker run -d --rm \
|
||
--name "${CONTAINER_NAME}" \
|
||
-p 8080:8080 \
|
||
- --extra-host "www.okx.com:104.18.43.174" \
|
||
- --extra-host "api.okx.com:104.18.43.174" \
|
||
+ --add-host "www.okx.com:104.18.43.174" \
|
||
+ --add-host "api.okx.com:104.18.43.174" \
|
||
-v "$(pwd)/../user_data:/freqtrade/user_data" \
|
||
-v "$(pwd)/../config_examples:/freqtrade/config_examples" \
|
||
-v "$(pwd)/../freqtrade/templates:/freqtrade/templates" \
|
||
--
|
||
2.50.1 (Apple Git-155)
|
||
|