79dc56d179
Agent-Logs-Url: https://github.com/Open3DLab/mikebase/sessions/349bd27e-61d5-40d4-b4d1-0c552a78a9e2 Co-authored-by: Ganonmaster <168445+Ganonmaster@users.noreply.github.com>
34 lines
873 B
Docker
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"]
|