prvng_platform/crates/daemon/Dockerfile.runtime
2026-02-04 01:02:18 +00:00

39 lines
1.2 KiB
Docker

FROM debian:bookworm-slim
# Install runtime dependencies
RUN apt-get update && apt-get install -y \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
# Create user
RUN useradd -m -u 1000 provisioning && \
mkdir -p /data /var/log/provisioning-daemon /etc/provisioning && \
chown -R provisioning:provisioning /data /var/log/provisioning-daemon /etc/provisioning
# Copy pre-built binary
COPY target/release/provisioning-daemon /usr/local/bin/provisioning-daemon
RUN chmod +x /usr/local/bin/provisioning-daemon
# Copy default configuration files (assumes they're available at build time)
COPY provisioning/platform/config/runtime/generated/provisioning-daemon.*.toml /etc/provisioning/
USER provisioning
WORKDIR /app
EXPOSE 8079
ENV RUST_LOG=info
ENV DATA_DIR=/data
ENV PROVISIONING_DAEMON_MODE=solo
ENV PROVISIONING_CONFIG_DIR=/etc/provisioning
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD curl -f http://localhost:8079/api/v1/health || exit 1
# Configuration precedence:
# 1. PROVISIONING_DAEMON_CONFIG (explicit path)
# 2. PROVISIONING_DAEMON_MODE (mode-specific file)
# 3. Default fallback
CMD ["provisioning-daemon"]