Initial public release

This commit is contained in:
thakares committed 2026-06-11 20:19:03 +05:30
commit c1107147b4
92 files changed
+10562

No files matched your search

+67
View File
@@ -0,0 +1,67 @@
# ==========================================
# Stage 1: Build
# ==========================================
FROM rust:1.82-slim-bookworm AS builder
WORKDIR /app
# Install build dependencies
RUN apt-get update && apt-get install -y \
pkg-config \
libssl-dev \
git \
&& rm -rf /var/lib/apt/lists/*
# Copy configuration files
COPY Cargo.toml ./
# Pre-build dependencies to cache them
RUN mkdir src && echo "fn main() {}" > src/main.rs
RUN cargo build --release
RUN rm -rf src
# Copy source and templates
COPY src ./src
COPY templates ./templates
# Trigger rebuilding with actual source
RUN touch src/main.rs
RUN cargo build --release
# ==========================================
# Stage 2: Runner
# ==========================================
FROM debian:bookworm-slim
WORKDIR /app
# Install runtime dependencies
RUN apt-get update && apt-get install -y \
openssl \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
# Copy binary from builder
COPY --from=builder /app/target/release/bzod /usr/local/bin/bzod
# Create non-root user and data directory
RUN groupadd -g 10001 bzod && \
useradd -u 10001 -g bzod -m -s /bin/bash bzod
RUN mkdir -p /app/data && chown -R bzod:bzod /app/data
USER bzod
ENV DATA_DIR=/app/data
ENV PORT=8080
ENV HOST=0.0.0.0
ENV COOKIE_SECURE=true
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
CMD curl -f http://localhost:$${PORT:-8080}/status || exit 1
ENTRYPOINT ["bzod"]
CMD ["serve"]