# cursord Docker image
#
# Build:
#   docker build -t cursord .
#
# Run (connects to production control plane by default):
#   docker run -it --rm cursord
#
# Run with custom control plane:
#   docker run -it --rm -e CURSORD_CONTROL_PLANE=http://host.docker.internal:3001 cursord
#
# Run with custom name and workers:
#   docker run -it --rm -e CURSORD_NAME=my-daemon -e CURSORD_WORKERS=4 cursord

FROM alpine:3.19

# Install dependencies
RUN apk add --no-cache \
    bash \
    curl \
    ca-certificates

# Create non-root user
RUN adduser -D -h /home/cursord cursord

# Download cursord binary
ARG TARGETARCH
RUN ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64" || echo "amd64") && \
    curl -fsSL "https://d.cursord.com/cursord-linux-${ARCH}" -o /usr/local/bin/cursord && \
    chmod +x /usr/local/bin/cursord

# Create working directory
RUN mkdir -p /tmp/cursord && chown cursord:cursord /tmp/cursord

# Switch to non-root user
USER cursord
WORKDIR /home/cursord

# Environment variables (can be overridden at runtime)
ENV CURSORD_WORKERS=1
ENV CURSORD_NAME=""
ENV CURSORD_WORKDIR=/tmp/cursord

# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
    CMD pgrep cursord || exit 1

# Default command
CMD ["sh", "-c", "exec /usr/local/bin/cursord start --workers ${CURSORD_WORKERS} ${CURSORD_NAME:+--name $CURSORD_NAME}"]
