FROM rustlang/rust:nightly-slim AS builder WORKDIR /app # Install build dependencies RUN apt update && apt install -y \ musl-tools \ musl-dev \ build-essential \ libssl-dev \ curl \ pkg-config \ ca-certificates \ protobuf-compiler \ zlib1g # Copy dependency files first for better caching COPY Cargo.toml Cargo.lock ./ COPY ./src ./src COPY build.rs ./ COPY tbm-proto ./tbm-proto # Download config RUN curl -X GET https://pakin-inspiron-15-3530.tail110d9.ts.net/pakin/tbm-git-repo-service/releases/download/config/.tbcfg -o .tbcfg # Build the application ENV RUSTFLAGS="-C target-feature=+crt-static" RUN cargo build --release # Builder FROM gcr.io/distroless/cc # Copy the binary COPY --from=builder /app/target/release/tbm-git-repo-service / COPY --from=builder /app/.tbcfg / # Create data directory EXPOSE 36583 # Environment defaults CMD ["./tbm-git-repo-service"]