@@ -12,8 +12,10 @@ ROOT="$(mktemp -d "$ROOT_BASE/auth-claude-login.XXXXXX")"
1212chmod 0700 " $ROOT "
1313KEEP=" ${KEEP:- 0} "
1414COMPOSE_OVERRIDE_FILE=" $ROOT /docker-compose.auth-claude-login.yml"
15+ DOCKER_WRAPPER_DIR=" $ROOT /docker-wrapper"
16+ DOCKER_WRAPPER_FILE=" $DOCKER_WRAPPER_DIR /docker"
1517LOGIN_TIMEOUT_SECONDS=" ${DOCKER_GIT_E2E_AUTH_CLAUDE_LOGIN_TIMEOUT_SECONDS:- 900} "
16- OAUTH_TOKEN_MARKER=" docker-git-e2e-oauth-token-marker"
18+ OAUTH_TOKEN_MARKER=" sk-ant-oat01- docker-git-e2e-oauth-token-marker"
1719
1820export DOCKER_GIT_PROJECTS_ROOT=" $ROOT "
1921export DOCKER_GIT_STATE_AUTO_SYNC=0
@@ -22,11 +24,59 @@ export DOCKER_GIT_PROJECTS_ROOT_VOLUME="docker-git-e2e-auth-claude-$RUN_ID-proje
2224export DOCKER_GIT_CONTROLLER_COMPOSE_EXTRA_FILE=" $COMPOSE_OVERRIDE_FILE "
2325export COMPOSE_PROJECT_NAME=" docker-git"
2426
27+ mkdir -p " $DOCKER_WRAPPER_DIR "
28+ cat > " $DOCKER_WRAPPER_FILE " << 'BASH '
29+ #!/usr/bin/env bash
30+ set -euo pipefail
31+
32+ REAL_DOCKER="/usr/bin/docker"
33+ CLAUDE_AUTH_IMAGE="docker-git-auth-claude:latest"
34+ args=("$@")
35+ image_index=-1
36+
37+ for index in "${!args[@]}"; do
38+ if [[ "${args[$index]}" == "$CLAUDE_AUTH_IMAGE" ]]; then
39+ image_index="$index"
40+ fi
41+ done
42+
43+ if [[ "$image_index" -ge 0 ]]; then
44+ first_command_arg="${args[$((image_index + 1))]:-}"
45+ second_command_arg="${args[$((image_index + 2))]:-}"
46+
47+ if [[ "$first_command_arg" == "setup-token" ]]; then
48+ : "${DOCKER_GIT_E2E_CLAUDE_SETUP_TOKEN_MARKER:?missing synthetic Claude OAuth token marker}"
49+ cat <<TOKEN
50+ Welcome to Claude Code
51+
52+ ✓ Long-lived authentication token created successfully!
53+
54+ Your OAuth token (valid for 1 year):
55+
56+ ${DOCKER_GIT_E2E_CLAUDE_SETUP_TOKEN_MARKER}
57+
58+ Store this token securely. You won't be able to see it again.
59+ TOKEN
60+ exit 0
61+ fi
62+
63+ if [[ "$first_command_arg" == "-p" && "$second_command_arg" == "ping" ]]; then
64+ echo "synthetic Claude API probe failure" >&2
65+ exit 7
66+ fi
67+ fi
68+
69+ exec "$REAL_DOCKER" "$@"
70+ BASH
71+ chmod 0755 " $DOCKER_WRAPPER_FILE "
72+
2573cat > " $COMPOSE_OVERRIDE_FILE " << YAML
2674services:
2775 api:
2876 environment:
29- DOCKER_GIT_CLAUDE_OAUTH_TOKEN: ${OAUTH_TOKEN_MARKER}
77+ DOCKER_GIT_E2E_CLAUDE_SETUP_TOKEN_MARKER: ${OAUTH_TOKEN_MARKER}
78+ volumes:
79+ - ${DOCKER_WRAPPER_FILE} :/usr/local/bin/docker:ro
3080YAML
3181
3282LOG_FILE=" /tmp/docker-git-auth-claude-login-$RUN_ID .log"
0 commit comments