Files
shimmy/Dockerfile
Mike Kuykendall af49c7a066 Fix Docker build failure (Issue #152) (#154)
- Add missing COPY benches/ ./benches/ to Dockerfile
- Update Rust version from 1.75-slim to 1.85-slim for lock file compatibility
- Add libclang-dev and cmake build dependencies
- Add Docker build regression test to release gates

Root cause: Dockerfile was missing benches/ directory copy, causing Cargo manifest parsing to fail. Also missing build dependencies for llama.cpp-sys compilation.
2025-12-07 16:05:27 -06:00

49 lines
1001 B
Docker

FROM rust:1.85-slim as builder
# Install build dependencies
RUN apt-get update && apt-get install -y \
pkg-config \
libssl-dev \
build-essential \
libclang-dev \
cmake \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY src/ ./src/
COPY benches/ ./benches/
COPY templates/ ./templates/
# Build the application
RUN cargo build --release --features huggingface
# Runtime stage
FROM debian:bookworm-slim
# Install runtime dependencies
RUN apt-get update && apt-get install -y \
ca-certificates \
libssl3 \
&& rm -rf /var/lib/apt/lists/*
# Create app directory
WORKDIR /app
# Copy the binary
COPY --from=builder /app/target/release/shimmy /usr/local/bin/shimmy
# Create models directory
RUN mkdir -p /app/models
# Expose port
EXPOSE 11434
# Set default environment
ENV SHIMMY_PORT=11434
ENV SHIMMY_HOST=0.0.0.0
ENV SHIMMY_BASE_GGUF=/app/models
# Run shimmy
CMD ["shimmy", "serve"]