






















@@ -1,17 +1,22 @@
11#!/usr/bin/env bash
22set -euo pipefail
334-ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
4+SCRIPT_ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5+ROOT_DIR="${OPENCLAW_LIVE_DOCKER_REPO_ROOT:-$SCRIPT_ROOT_DIR}"
6+ROOT_DIR="$(cd "$ROOT_DIR" && pwd)"
57source "$ROOT_DIR/scripts/lib/live-docker-auth.sh"
68IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}"
79LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}"
810CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}"
911WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}"
1012PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}"
1113CODEX_HARNESS_AUTH_MODE="${OPENCLAW_LIVE_CODEX_HARNESS_AUTH:-codex-auth}"
14+TRUSTED_HARNESS_DIR="${OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR:-$SCRIPT_ROOT_DIR}"
1215TEMP_DIRS=()
1316DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}"
1417DOCKER_HOME_MOUNT=()
18+DOCKER_TRUSTED_HARNESS_MOUNT=()
19+DOCKER_TRUSTED_HARNESS_CONTAINER_DIR=""
1520DOCKER_EXTRA_ENV_FILES=()
1621DOCKER_AUTH_PRESTAGED=0
1722@@ -81,6 +86,12 @@ if [[ -f "$PROFILE_FILE" && -r "$PROFILE_FILE" ]]; then
8186 PROFILE_STATUS="$PROFILE_FILE"
8287fi
838889+if [[ -n "$TRUSTED_HARNESS_DIR" && -d "$TRUSTED_HARNESS_DIR" ]]; then
90+ TRUSTED_HARNESS_DIR="$(cd "$TRUSTED_HARNESS_DIR" && pwd)"
91+ DOCKER_TRUSTED_HARNESS_CONTAINER_DIR="/trusted-harness"
92+ DOCKER_TRUSTED_HARNESS_MOUNT=(-v "$TRUSTED_HARNESS_DIR":"$DOCKER_TRUSTED_HARNESS_CONTAINER_DIR":ro)
93+fi
94+8495AUTH_FILES=()
8596if [[ "$CODEX_HARNESS_AUTH_MODE" != "api-key" ]]; then
8697while IFS= read -r auth_file; do
@@ -174,6 +185,14 @@ openclaw_live_stage_source_tree "$tmp_dir"
174185openclaw_live_stage_node_modules "$tmp_dir"
175186openclaw_live_link_runtime_tree "$tmp_dir"
176187openclaw_live_stage_state_dir "$tmp_dir/.openclaw-state"
188+if [ -n "${OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR:-}" ] && [ -d "$OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR" ]; then
189+ for harness_file in src/gateway/gateway-codex-harness.live-helpers.ts; do
190+ if [ -f "$OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR/$harness_file" ]; then
191+ mkdir -p "$(dirname "$tmp_dir/$harness_file")"
192+ cp "$OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR/$harness_file" "$tmp_dir/$harness_file"
193+ fi
194+ done
195+fi
177196openclaw_live_prepare_staged_config
178197cd "$tmp_dir"
179198if [ "${OPENCLAW_LIVE_CODEX_HARNESS_USE_CI_SAFE_CODEX_CONFIG:-1}" = "1" ]; then
@@ -235,6 +254,7 @@ DOCKER_RUN_ARGS=(docker run --rm -t \
235254 -e OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_ONLY="${OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_ONLY:-}" \
236255 -e OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE="${OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE:-1}" \
237256 -e OPENCLAW_LIVE_CODEX_HARNESS_USE_CI_SAFE_CODEX_CONFIG="${OPENCLAW_LIVE_CODEX_HARNESS_USE_CI_SAFE_CODEX_CONFIG:-1}" \
257+ -e OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR="$DOCKER_TRUSTED_HARNESS_CONTAINER_DIR" \
238258 -e OPENCLAW_LIVE_CODEX_BIND="${OPENCLAW_LIVE_CODEX_BIND:-}" \
239259 -e OPENCLAW_LIVE_CODEX_BIND_MODEL="${OPENCLAW_LIVE_CODEX_BIND_MODEL:-}" \
240260 -e OPENCLAW_LIVE_CODEX_TEST_FILES="${OPENCLAW_LIVE_CODEX_TEST_FILES:-}" \
@@ -243,6 +263,7 @@ DOCKER_RUN_ARGS=(docker run --rm -t \
243263openclaw_live_append_array DOCKER_RUN_ARGS DOCKER_AUTH_ENV
244264openclaw_live_append_array DOCKER_RUN_ARGS DOCKER_EXTRA_ENV_FILES
245265openclaw_live_append_array DOCKER_RUN_ARGS DOCKER_HOME_MOUNT
266+openclaw_live_append_array DOCKER_RUN_ARGS DOCKER_TRUSTED_HARNESS_MOUNT
246267DOCKER_RUN_ARGS+=(\
247268 -v "$CACHE_HOME_DIR":/home/node/.cache \
248269 -v "$ROOT_DIR":/src:ro \
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。