mirror of
https://github.com/ION606/config-backup.git
synced 2026-07-14 01:38:07 +00:00
claude fix
This commit is contained in:
@@ -39,7 +39,7 @@ out = {
|
|||||||
"hasTrustDialogAccepted": True,
|
"hasTrustDialogAccepted": True,
|
||||||
"hasTrustDialogHooksAccepted": True,
|
"hasTrustDialogHooksAccepted": True,
|
||||||
"hasCompletedProjectOnboarding": True,
|
"hasCompletedProjectOnboarding": True,
|
||||||
"mcpServers": d.get("projects", {}).get(cwd, {}).get("mcpServers", {}),
|
"mcpServers": d.get("projects", {}).get("${cwd}", {}).get("mcpServers", {}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -55,15 +55,51 @@ fi
|
|||||||
export CLAUDE_CODE_OAUTH_TOKEN
|
export CLAUDE_CODE_OAUTH_TOKEN
|
||||||
export AUTH_BLOB="$auth_blob"
|
export AUTH_BLOB="$auth_blob"
|
||||||
|
|
||||||
docker pull containers.ion606.dev/ion606/claude-docker:latest &>/dev/null
|
# sync CLAUDE.md into .claude/ so it's visible at /workspace/.claude/CLAUDE.md inside container
|
||||||
|
mkdir -p "${cwd}/.claude"
|
||||||
|
if [[ -f "${cwd}/CLAUDE.md" ]]; then
|
||||||
|
cp "${cwd}/CLAUDE.md" "${cwd}/.claude/CLAUDE.md"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker pull containers.ion606.dev/ion606/claude-docker:latest 1> /dev/null
|
||||||
|
|
||||||
|
# resolve symlinks under cwd, mount host targets at container-side resolved paths
|
||||||
|
# absolute link: container path == host target
|
||||||
|
# relative link: container path = normalize(/workspace + relpath(link,cwd)/.. + raw)
|
||||||
|
symlink_max_depth="${CLAUDE_SYMLINK_MAXDEPTH:-3}"
|
||||||
|
symlink_mounts=()
|
||||||
|
seen_pairs=()
|
||||||
|
while IFS= read -r -d '' link; do
|
||||||
|
host_target="$(readlink -f -- "$link" 2>/dev/null)" || continue
|
||||||
|
[[ -z "$host_target" || ! -e "$host_target" ]] && continue
|
||||||
|
|
||||||
|
# skip if target inside cwd (already covered by /workspace mount)
|
||||||
|
[[ "$host_target" == "$cwd"/* || "$host_target" == "$cwd" ]] && continue
|
||||||
|
|
||||||
|
raw="$(readlink -- "$link")"
|
||||||
|
if [[ "$raw" = /* ]]; then
|
||||||
|
container_path="$host_target"
|
||||||
|
else
|
||||||
|
rel="${link#$cwd/}"
|
||||||
|
container_path="$(realpath -m "/workspace/$(dirname "$rel")/$raw")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
pair="${host_target}:${container_path}"
|
||||||
|
for p in "${seen_pairs[@]:-}"; do [[ "$p" == "$pair" ]] && continue 2; done
|
||||||
|
|
||||||
|
seen_pairs+=("$pair")
|
||||||
|
symlink_mounts+=(-v "$pair")
|
||||||
|
done < <(find "$cwd" -maxdepth "$symlink_max_depth" -type l -print0 2>/dev/null)
|
||||||
|
|
||||||
|
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
-v "${cwd}:/workspace" \
|
-v "${cwd}:/workspace" \
|
||||||
-v "${HOME}/.claude/plugins:/root/.claude/plugins:ro" \
|
-v "${HOME}/.claude/plugins:/home/claude/.claude/plugins:ro" \
|
||||||
-v "${HOME}/.claude/settings.json:/root/.claude/settings.json:ro" \
|
-v "${HOME}/.claude/settings.json:/home/claude/.claude/settings.json:ro" \
|
||||||
|
"${symlink_mounts[@]}" \
|
||||||
-e CLAUDE_CODE_OAUTH_TOKEN \
|
-e CLAUDE_CODE_OAUTH_TOKEN \
|
||||||
-e AUTH_BLOB \
|
-e AUTH_BLOB \
|
||||||
-e README_CONTENTS="$(cat ${cwd}/CLAUDE.md)" \
|
|
||||||
--cap-drop ALL \
|
--cap-drop ALL \
|
||||||
ion-claude:latest "$@" \
|
--gpus all \
|
||||||
|
containers.ion606.dev/ion606/claude-docker:latest "$@" \
|
||||||
2>&1 | tee "$session_file"
|
2>&1 | tee "$session_file"
|
||||||
|
|||||||
Reference in New Issue
Block a user