feat: add klog
This commit is contained in:
50
backend/Dockerfile
Normal file
50
backend/Dockerfile
Normal file
@@ -0,0 +1,50 @@
|
||||
FROM rust:1.87-slim AS builder
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copy workspace manifests
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
|
||||
# Copy only the crates needed for klog-backend
|
||||
COPY crates/ktracing/Cargo.toml crates/ktracing/Cargo.toml
|
||||
COPY crates/ktracing-subscriber/Cargo.toml crates/ktracing-subscriber/Cargo.toml
|
||||
COPY klog/backend/Cargo.toml klog/backend/Cargo.toml
|
||||
COPY klog/klog-cli/Cargo.toml klog/klog-cli/Cargo.toml
|
||||
COPY klog/types/Cargo.toml klog/types/Cargo.toml
|
||||
|
||||
# Stub out every workspace member so Cargo can resolve the graph without full source
|
||||
RUN find . -name "Cargo.toml" -not -path "./Cargo.toml" | while read f; do \
|
||||
dir=$(dirname "$f"); \
|
||||
mkdir -p "$dir/src"; \
|
||||
echo 'fn main() {}' > "$dir/src/main.rs"; \
|
||||
touch "$dir/src/lib.rs"; \
|
||||
done
|
||||
|
||||
# Build deps only (cache layer)
|
||||
RUN cargo build --release -p klog-backend 2>/dev/null || true
|
||||
|
||||
# Now copy real source
|
||||
COPY crates/ktracing/src crates/ktracing/src
|
||||
COPY crates/ktracing-subscriber/src crates/ktracing-subscriber/src
|
||||
COPY klog/backend/src klog/backend/src
|
||||
COPY klog/types/src klog/types/src
|
||||
|
||||
# Touch to invalidate cached stubs
|
||||
RUN find klog/backend/src klog/types/src crates/ktracing/src crates/ktracing-subscriber/src \
|
||||
-name "*.rs" -exec touch {} +
|
||||
|
||||
RUN cargo build --release -p klog-backend
|
||||
|
||||
# ── Runtime image ─────────────────────────────────────────────────────────────
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /build/target/release/klog-backend /usr/local/bin/klog-backend
|
||||
|
||||
ENV PORT=3000
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["/usr/local/bin/klog-backend"]
|
||||
Reference in New Issue
Block a user