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"]