huanbao commited on
Commit
852f801
·
verified ·
1 Parent(s): c02aa56

Update entrypoint.sh

Browse files
Files changed (1) hide show
  1. entrypoint.sh +141 -28
entrypoint.sh CHANGED
@@ -2,26 +2,38 @@
2
  set -e
3
 
4
  # 1. 创建持久化挂载目录
5
- mkdir -p /data/.claude /data/.cloudcli /data/app /data/.taskmaster /data/.cursor /data/.config
6
 
7
- # 2. 保证 HOME 下的配置目录为真实目录
8
- mkdir -p "$HOME/.claude" "$HOME/.cloudcli" "$HOME/.taskmaster" "$HOME/.cursor" "$HOME/.config"
9
-
10
- # 3. 针对完整目录做软链接映射(挂载 .cursor)
11
- if [ ! -L "$HOME/.cursor" ]; then
12
- rm -rf "$HOME/.cursor"
13
- ln -s /data/.cursor "$HOME/.cursor"
14
- fi
15
  if [ ! -L "$HOME/.claude" ]; then
16
- rm -rf "$HOME/.claude"
17
- ln -s /data/.claude "$HOME/.claude"
18
  fi
 
19
  if [ ! -L "$HOME/.cloudcli" ]; then
20
- rm -rf "$HOME/.cloudcli"
21
- ln -s /data/.cloudcli "$HOME/.cloudcli"
 
 
 
 
 
 
 
 
 
 
 
22
  fi
23
 
24
- # 4. 自动生成 settings.json (Claude Code)
 
 
 
 
 
 
 
25
  cat <<EOF > "$HOME/.claude/settings.json"
26
  {
27
  "cleanupPeriodDays": 720,
@@ -34,7 +46,12 @@ cat <<EOF > "$HOME/.claude/settings.json"
34
  "CLAUDE_CODE_PROXY_RESOLVES_HOSTS": "1",
35
  "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
36
  "ENABLE_TOOL_SEARCH": "true",
37
- "DISABLE_AUTOUPDATER": "1"
 
 
 
 
 
38
  },
39
  "permissions": {
40
  "allow": [
@@ -57,24 +74,120 @@ cat <<EOF > "$HOME/.claude/settings.json"
57
  }
58
  EOF
59
 
60
- # 5. 注入 Cursor 环境变量与 $HOME/.cursor/auth.json 凭证
61
- CURSOR_TOKEN="${CURSOR_SESSION_TOKEN:-${CURSOR_API_KEY:-}}"
62
 
63
- if [ -n "$CURSOR_TOKEN" ]; then
64
- export CURSOR_SESSION_TOKEN="$CURSOR_TOKEN"
65
- export WORKOS_CURSOR_SESSION_TOKEN="$CURSOR_TOKEN"
66
- export CURSOR_AUTH_TOKEN="$CURSOR_TOKEN"
67
- export CURSOR_API_KEY="$CURSOR_TOKEN"
 
 
 
 
 
 
68
 
69
- # 自动生成 $HOME/.cursor/auth.json
70
- cat <<EOF > "$HOME/.cursor/auth.json"
71
  {
72
- "token": "$CURSOR_TOKEN",
73
- "apiKey": "$CURSOR_TOKEN"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
  EOF
76
- fi
77
 
78
- # 6. 切换工作目录并启动
79
  cd /data/app
80
  exec "$@"
 
2
  set -e
3
 
4
  # 1. 创建持久化挂载目录
5
+ mkdir -p /data/.claude /data/.codex /data/.cloudcli /data/app /data/.taskmaster /data/.cursor
6
 
7
+ # 2. 软链接映射到持久化盘
 
 
 
 
 
 
 
8
  if [ ! -L "$HOME/.claude" ]; then
9
+ rm -rf "$HOME/.claude"
10
+ ln -s /data/.claude "$HOME/.claude"
11
  fi
12
+
13
  if [ ! -L "$HOME/.cloudcli" ]; then
14
+ rm -rf "$HOME/.cloudcli"
15
+ ln -s /data/.cloudcli "$HOME/.cloudcli"
16
+ fi
17
+
18
+ if [ ! -L "$HOME/.taskmaster" ]; then
19
+ rm -rf "$HOME/.taskmaster"
20
+ ln -s /data/.taskmaster "$HOME/.taskmaster"
21
+ fi
22
+
23
+ # 增加对 .codex 的软链接映射
24
+ if [ ! -L "$HOME/.codex" ]; then
25
+ rm -rf "$HOME/.codex"
26
+ ln -s /data/.codex "$HOME/.codex"
27
  fi
28
 
29
+ # 增加对 .cursor 的软链接映射
30
+ if [ ! -L "$HOME/.cursor" ]; then
31
+ rm -rf "$HOME/.cursor"
32
+ ln -s /data/.cursor "$HOME/.cursor"
33
+ fi
34
+
35
+ # 3. 自动生成 settings.json(使用 ANTHROPIC_API_KEY 替代 AUTH_TOKEN)
36
+ mkdir -p "$HOME/.claude"
37
  cat <<EOF > "$HOME/.claude/settings.json"
38
  {
39
  "cleanupPeriodDays": 720,
 
46
  "CLAUDE_CODE_PROXY_RESOLVES_HOSTS": "1",
47
  "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
48
  "ENABLE_TOOL_SEARCH": "true",
49
+ "DISABLE_AUTOUPDATER": "1",
50
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-sonnet-x[1m]",
51
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-sonnet-x[1m]",
52
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-x[1m]",
53
+ "ANTHROPIC_MODEL": "claude-sonnet-x[1m]",
54
+ "ANTHROPIC_REASONING_MODEL": "claude-sonnet-x[1m]"
55
  },
56
  "permissions": {
57
  "allow": [
 
74
  }
75
  EOF
76
 
77
+ # 自动生成 Codex 配置与激活凭证
78
+ mkdir -p "$HOME/.codex"
79
 
80
+ # 4.1 写入 config.toml
81
+ cat <<EOF > "$HOME/.codex/config.toml"
82
+ cli_auth_credentials_store = "file"
83
+ model_provider = "${CODEX_PROVIDER:-custom}"
84
+ model = "${CODEX_MODEL:-gpt-5.6-sol}"
85
+ [model_providers.custom]
86
+ name = "Custom"
87
+ base_url = "${CODEX_BASE_URL:-https://api.openai.com/v1}"
88
+ wire_api = "responses"
89
+ requires_openai_auth = true
90
+ EOF
91
 
92
+ # 4.2 写入 auth.json 激活凭证
93
+ cat <<EOF > "$HOME/.codex/auth.json"
94
  {
95
+ "OPENAI_API_KEY": "${CODEX_API_KEY:-sk-dummy-key}"
96
+ }
97
+ EOF
98
+
99
+ # 5 自动生成 Cursor 配置与激活凭证
100
+ mkdir -p "$HOME/.cursor"
101
+ cat <<EOF > "$HOME/.cursor/cli-config.json"
102
+ {
103
+ "permissions": {
104
+ "allow": [
105
+ "Shell(ls)"
106
+ ],
107
+ "deny": []
108
+ },
109
+ "version": 1,
110
+ "editor": {
111
+ "vimMode": false
112
+ },
113
+ "display": {
114
+ "showLineNumbers": false,
115
+ "showThinkingBlocks": false,
116
+ "showStatusIndicators": false,
117
+ "showStatusLineRunningTime": false,
118
+ "mode": "zen"
119
+ },
120
+ "notifications": true,
121
+ "hints": true,
122
+ "modelSlashCommands": true,
123
+ "rewind": true,
124
+ "model": {
125
+ "modelId": "default",
126
+ "displayModelId": "auto",
127
+ "displayName": "Auto",
128
+ "displayNameShort": "Auto",
129
+ "aliases": [
130
+ "auto"
131
+ ],
132
+ "maxMode": false
133
+ },
134
+ "hasChangedDefaultModel": false,
135
+ "modelParameters": {
136
+ "default": []
137
+ },
138
+ "selectedModel": {
139
+ "modelId": "default",
140
+ "parameters": []
141
+ },
142
+ "modelSelectionHistory": [
143
+ "default"
144
+ ],
145
+ "exploreSubagentModel": "default",
146
+ "privacyCache": {
147
+ "ghostMode": true,
148
+ "privacyMode": 2,
149
+ "updatedAt": 1788319772358
150
+ },
151
+ "autoReviewAvailabilityCache": {
152
+ "backendUrl": "https://api2.cursor.sh",
153
+ "authCacheKey": "auth:auth0|user_01M1FVSA1ACQKBVJT0N5ST0FT8",
154
+ "available": true,
155
+ "updatedAt": 1788319795595
156
+ },
157
+ "serverConfigCache": {
158
+ "backendUrl": "https://api2.cursor.sh",
159
+ "authCacheKey": "auth:auth0|user_01M1FVSA1ACQKBVJT0N5ST0FT8",
160
+ "agentUrlConfig": {
161
+ "agentUrl": "https://agentn.global.api5.cursor.sh",
162
+ "agentnUrl": "https://agentn.global.api5.cursor.sh"
163
+ },
164
+ "cliSandboxDefaultEnabled": false,
165
+ "serverHttp2Config": 0,
166
+ "updatedAt": 1788319792368
167
+ },
168
+ "authInfo": {
169
+ "email": "dragonfly2025@edu.openlook.kdns.fr",
170
+ "displayName": "dragon fly",
171
+ "userId": 418660534,
172
+ "authId": "auth0|user_01M1FVSA1ACQKBVJT0N5ST0FT8"
173
+ },
174
+ "network": {
175
+ "useHttp1ForAgent": false
176
+ },
177
+ "approvalMode": "allowlist",
178
+ "autoAcceptWebSearch": false,
179
+ "sandbox": {
180
+ "mode": "disabled",
181
+ "networkAccess": "user_config_with_defaults"
182
+ },
183
+ "runEverythingSettingsPromptStreak": 0,
184
+ "attribution": {
185
+ "attributeCommitsToAgent": true,
186
+ "attributePRsToAgent": true
187
+ }
188
  }
189
  EOF
 
190
 
191
+ # 6. 切换到工作目录并启动命令
192
  cd /data/app
193
  exec "$@"