mirror of
https://github.com/hanzo-ml/trainer.git
synced 2026-09-24 00:31:34 +00:00
87b2260f79
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>
62 lines
1.8 KiB
Docker
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
|