39 lines
1.2 KiB
Docker
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"]
|