The entrypoint installed a crontab but never started a cron daemon, leaving the container idle. Fix by running as root in the entrypoint (cron requires it), installing the crontab for the agent user via `crontab -u agent`, and starting cron in the foreground with `cron -f`. Remove `USER agent` from the Dockerfile and `user: "1000:1000"` from the compose template accordingly — cron jobs still execute as UID 1000. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
21 lines
625 B
Docker
21 lines
625 B
Docker
FROM debian:bookworm-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
bash curl git jq tmux cron python3 openssh-client ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Claude CLI
|
|
RUN curl -fsSL https://cli.anthropic.com/install.sh | sh \
|
|
&& mv /root/.claude/local/claude /usr/local/bin/claude || true
|
|
|
|
# Non-root user
|
|
RUN useradd -m -u 1000 -s /bin/bash agent
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
# Entrypoint runs as root to start the cron daemon;
|
|
# cron jobs execute as the agent user (crontab -u agent).
|
|
WORKDIR /home/agent
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|