Files
Moltbot/scripts/docker-entrypoint.sh
JayMishra-github 53af9f7437 feat(docker): add init script support via /openclaw-init.d/
Adds an ENTRYPOINT script that runs user-provided init scripts from
/openclaw-init.d/ before starting the gateway. This is the standard
Docker pattern (used by nginx, postgres, etc.) for customizing container
startup without overriding the entire entrypoint.

Usage:
  docker run -v ./my-init-scripts:/openclaw-init.d:ro openclaw

Scripts must be executable. Non-executable files are skipped with a
warning. Scripts run in alphabetical order with output prefixed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:52:26 +01:00

30 lines
920 B
Bash
Executable File

#!/bin/sh
# OpenClaw Docker entrypoint with init script support.
#
# Runs any executable scripts found in /openclaw-init.d/ before starting
# the main process. This allows users to mount custom initialization
# scripts (e.g., install dependencies, apply patches, start services)
# without overriding the entire entrypoint.
#
# Usage in docker-compose.yml:
# volumes:
# - ./my-init-scripts:/openclaw-init.d:ro
INIT_DIR="/openclaw-init.d"
if [ -d "$INIT_DIR" ] && [ "$(ls -A "$INIT_DIR" 2>/dev/null)" ]; then
echo "[openclaw-init] Running init scripts from $INIT_DIR..."
for script in "$INIT_DIR"/*; do
[ -f "$script" ] || continue
if [ -x "$script" ]; then
echo "[openclaw-init] Running $(basename "$script")..."
"$script" 2>&1 | sed "s/^/ /"
else
echo "[openclaw-init] Skipping $(basename "$script") (not executable)"
fi
done
echo "[openclaw-init] Done."
fi
exec "$@"