Containerfile 879 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Multi-stage build for SeckelAPI
  2. FROM docker.io/library/rust:1.92-slim-trixie AS builder
  3. WORKDIR /build
  4. # Install build dependencies
  5. RUN apt-get update && \
  6. apt-get install -y pkg-config libssl-dev && \
  7. rm -rf /var/lib/apt/lists/*
  8. # Copy source code
  9. COPY sources/ .
  10. # Build release binary
  11. RUN cargo build --release
  12. # Runtime stage - minimal Debian image
  13. FROM docker.io/library/debian:trixie-slim
  14. WORKDIR /app
  15. # Install runtime dependencies
  16. RUN apt-get update && \
  17. apt-get install -y ca-certificates libssl3 nano && \
  18. rm -rf /var/lib/apt/lists/*
  19. # Copy binary and config from builder
  20. COPY --from=builder /build/target/release/seckelapi /app/seckelapi
  21. COPY sources/config/ /app/config/
  22. # Expose API port
  23. EXPOSE 5777
  24. # Run as non-root user
  25. RUN useradd -r -u 1000 seckelapi && \
  26. chown -R seckelapi:seckelapi /app
  27. USER seckelapi
  28. CMD ["/app/seckelapi"]