43 lines
No EOL
915 B
Docker
43 lines
No EOL
915 B
Docker
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"] |