JustinTX's picture
Add files using upload-large-folder tool
7f611c5 verified
#!/bin/bash
set -euo pipefail
if [ "${DIND:-}" = "1" ]; then
# Start Docker daemon in background (needed for Docker evaluators).
dockerd --host=unix:///var/run/docker.sock \
--storage-driver=overlay2 \
> /var/log/dockerd.log 2>&1 &
DOCKERD_PID=$!
sleep 2
if ! kill -0 $DOCKERD_PID 2>/dev/null; then
echo "overlay2 failed, falling back to vfs..." >> /var/log/dockerd.log
dockerd --host=unix:///var/run/docker.sock \
--storage-driver=vfs \
> /var/log/dockerd.log 2>&1 &
DOCKERD_PID=$!
fi
timeout=30
while ! docker info > /dev/null 2>&1; do
timeout=$((timeout - 1))
if [ "$timeout" -le 0 ]; then
echo "ERROR: dockerd failed to start" >&2
cat /var/log/dockerd.log >&2
exit 1
fi
sleep 1
done
# Load evaluator image if provided, start persistent evaluator container.
if [ -f /workspace/.evaluator-image.tar ]; then
EVAL_IMAGE=$(docker load < /workspace/.evaluator-image.tar 2>/dev/null | grep -o '[^ ]*$')
rm -f /workspace/.evaluator-image.tar
EVAL_CID=$(docker run -d --rm --entrypoint sleep "$EVAL_IMAGE" infinity)
echo "$EVAL_CID" > /workspace/.evaluator-container-id
fi
chown -R claude:claude /workspace 2>/dev/null || true
chmod -R a+rX /workspace 2>/dev/null || true
exec su -s /bin/bash claude -c "export HOME=/workspace; $1"
else
exec "$@"
fi