myTestFreqAI/patchs/dryrun-live-containername.patch
zhangkun9038@dingtalk.com 7d90cdbd7b new patch
2026-01-02 22:15:46 +08:00

553 lines
20 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)