somratpro commited on
Commit
5fa646d
Β·
1 Parent(s): 748bded

feat: add environment logging and bypass sandbox setup in gemini wrapper script

Browse files
Files changed (2) hide show
  1. Dockerfile +16 -2
  2. start.sh +11 -10
Dockerfile CHANGED
@@ -84,8 +84,22 @@ RUN for cmd in claude codex; do \
84
  # GEMINI_SANDBOX=false β€” skip Docker-sandbox attempt
85
  # GEMINI_CLI_TRUST_WORKSPACE=true β€” skip interactive workspace-trust prompt
86
  RUN mv /usr/local/bin/gemini /usr/local/bin/gemini-real && \
87
- printf '#!/bin/sh\nunset NODE_OPTIONS\nexport NODE_OPTIONS="--max-old-space-size=4096 --no-deprecation --no-warnings"\nexport GEMINI_CLI_NO_RELAUNCH=1\nexport GEMINI_SANDBOX=false\nexport GEMINI_CLI_TRUST_WORKSPACE=true\nexec /usr/local/bin/gemini-real "$@"\n' \
88
- > /usr/local/bin/gemini && \
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  chmod +x /usr/local/bin/gemini && \
90
  echo "=== gemini wrapper ===" && cat /usr/local/bin/gemini
91
 
 
84
  # GEMINI_SANDBOX=false β€” skip Docker-sandbox attempt
85
  # GEMINI_CLI_TRUST_WORKSPACE=true β€” skip interactive workspace-trust prompt
86
  RUN mv /usr/local/bin/gemini /usr/local/bin/gemini-real && \
87
+ { \
88
+ echo '#!/bin/sh'; \
89
+ echo '# Log invocation so we can see what env Paperclip actually passes'; \
90
+ echo 'echo "=== gemini wrapper $(date) args: $@ ===" >> /tmp/gemini-wrapper.log'; \
91
+ echo 'env | sort >> /tmp/gemini-wrapper.log'; \
92
+ echo ''; \
93
+ echo 'unset NODE_OPTIONS'; \
94
+ echo 'export NODE_OPTIONS="--max-old-space-size=4096 --no-deprecation --no-warnings"'; \
95
+ echo 'export GEMINI_CLI_NO_RELAUNCH=1'; \
96
+ echo 'export GEMINI_SANDBOX=false'; \
97
+ echo 'export GEMINI_CLI_TRUST_WORKSPACE=true'; \
98
+ echo '# SANDBOX=1 = "already inside sandbox" β€” bypasses entire sandbox setup block'; \
99
+ echo '# in gemini.tsx regardless of GEMINI_SANDBOX setting or defaults'; \
100
+ echo 'export SANDBOX=1'; \
101
+ echo 'exec /usr/local/bin/gemini-real "$@"'; \
102
+ } > /usr/local/bin/gemini && \
103
  chmod +x /usr/local/bin/gemini && \
104
  echo "=== gemini wrapper ===" && cat /usr/local/bin/gemini
105
 
start.sh CHANGED
@@ -328,20 +328,21 @@ if [ "$PAPERCLIP_READY" = true ]; then
328
  echo "Admin account already configured"
329
  fi
330
 
331
- # ── Gemini stderr diagnostic (captures actual error after "Fatal error:") ──
332
  echo ""
333
- echo "=== Gemini full-stderr diagnostic ==="
334
  HOME=/home/paperclip runuser -u paperclip -- \
335
  /usr/local/bin/gemini --output-format json "Respond with hello." \
336
  >/tmp/gemini-diag.out 2>/tmp/gemini-diag.err || true
337
- echo "exit=$?"
338
- echo "--- wrapper content ---"
339
- cat /usr/local/bin/gemini
340
- echo "--- stdout ---"
341
- cat /tmp/gemini-diag.out 2>/dev/null | head -20 || true
342
- echo "--- full stderr ---"
343
- cat /tmp/gemini-diag.err 2>/dev/null || true
344
- echo "=== end gemini diagnostic ==="
 
345
  echo ""
346
 
347
  else
 
328
  echo "Admin account already configured"
329
  fi
330
 
331
+ # ── Gemini diagnostic: test direct invocation + show wrapper env log ──────
332
  echo ""
333
+ echo "=== Gemini diagnostic ==="
334
  HOME=/home/paperclip runuser -u paperclip -- \
335
  /usr/local/bin/gemini --output-format json "Respond with hello." \
336
  >/tmp/gemini-diag.out 2>/tmp/gemini-diag.err || true
337
+ echo "startup-probe exit=$?"
338
+ echo "--- stdout (first 5 lines) ---"
339
+ head -5 /tmp/gemini-diag.out 2>/dev/null || true
340
+ echo "--- stderr ---"
341
+ cat /tmp/gemini-diag.err 2>/dev/null | head -10 || true
342
+ echo ""
343
+ echo "NOTE: After clicking 'Test now' in UI, run:"
344
+ echo " cat /tmp/gemini-wrapper.log (shows env Paperclip passes)"
345
+ echo "=== end diagnostic ==="
346
  echo ""
347
 
348
  else