flashcron 0.1.0

A lightning-fast, ultra-efficient cron daemon written in Rust - Schedule tasks at the speed of light
Documentation
# Build stage
FROM rust:1.82-alpine AS builder

RUN apk add --no-cache musl-dev

WORKDIR /app

# Copy manifests
COPY Cargo.toml ./

# Create dummy src to cache dependencies
RUN mkdir src && echo "fn main() {}" > src/main.rs
RUN cargo build --release || true
RUN rm -rf src target

# Copy actual source
COPY . .

# Build release binary
RUN cargo build --release

# Runtime stage
FROM alpine:3.19

RUN apk add --no-cache ca-certificates tzdata

# Create non-root user
RUN addgroup -S flashcron && adduser -S flashcron -G flashcron

WORKDIR /app

# Copy binary from builder
COPY --from=builder /app/target/release/flashcron /usr/local/bin/flashcron

# Set ownership
RUN chown -R flashcron:flashcron /app

USER flashcron

# Default config location
VOLUME ["/app/config"]

# Healthcheck
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
    CMD pgrep flashcron || exit 1

ENTRYPOINT ["flashcron"]
CMD ["run", "-c", "/app/config/flashcron.toml"]