Files
trainer/cmd/data_cache/Dockerfile
T
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
87b2260f79 chore(deps): bump rust from 1.95-bullseye to 1.96-bullseye in /cmd/data_cache (#3567)
Bumps rust from 1.95-bullseye to 1.96-bullseye.

---
updated-dependencies:
- dependency-name: rust
  dependency-version: 1.96-bullseye
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-04 04:38:33 +00:00

62 lines
1.8 KiB
Docker

# Copyright The Kubeflow Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM rust:1.96-bullseye AS builder
WORKDIR /workspace
ENV RUST_LOG=info
# Install system dependencies
RUN apt-get update && \
apt-get -y install libssl-dev openssl zlib1g zlib1g-dev libpq-dev cmake protobuf-compiler netcat curl && \
rm -rf /var/lib/apt/lists/*
# Install cargo-chef for better caching
RUN rustup update && cargo install cargo-chef --version 0.1.62
# Copy manifests for dependency caching
COPY pkg/data_cache/Cargo.toml pkg/data_cache/Cargo.lock ./
# Cache dependencies
RUN cargo fetch
# Copy source code
COPY pkg/data_cache/ .
# Run tests
RUN cargo test --tests
# Build binaries in release mode
RUN cargo build --release --bin head --bin worker
# Stage 2: Create a minimal runtime image
FROM debian:bookworm-slim AS runtime
# Install runtime dependencies
RUN apt-get update && \
apt-get -y install ca-certificates && \
rm -rf /var/lib/apt/lists/*
# Copy binaries from builder stage
COPY --from=builder /workspace/target/release/head /usr/local/bin/head
COPY --from=builder /workspace/target/release/worker /usr/local/bin/worker
# Create non-root user
RUN groupadd -r cache_user && useradd -r -g cache_user cache_user
# Change ownership and switch to non-root user
RUN chown -R cache_user:cache_user /usr/local/bin/
USER cache_user