Files
mikebase/Dockerfile
T

34 lines
873 B
Docker

FROM rust:1.85-bookworm AS builder
WORKDIR /app
# Copy manifests first for better layer caching
COPY Cargo.toml Cargo.lock ./
# Create a dummy main to cache dependency compilation
RUN mkdir src && echo "fn main() {}" > src/main.rs && \
mkdir migrations && touch migrations/.keep && \
echo "fn main() {}" > build.rs && \
cargo build --release && \
rm -rf src build.rs migrations
# Copy real source code
COPY . .
# Touch main.rs so cargo knows it changed
RUN touch src/main.rs && cargo build --release
# Runtime stage
FROM debian:bookworm-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends ca-certificates && \
rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/target/release/mikebase /usr/local/bin/mikebase
COPY --from=builder /app/config.example.toml /etc/mikebase/config.example.toml
EXPOSE 3000
CMD ["mikebase"]