Ctrl K
ComunidadGuías…

Dockerfile

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# syntax=docker/dockerfile:1.7

ARG RUST_VERSION=1.99.0
ARG RUST_IMAGE=rust:1.99.0-bookworm@sha256:59037199c44290f2befcdd58dcc540164763fc296950255aaefeef096a1866b0
ARG RUNTIME_IMAGE=debian:bookworm-slim@sha256:7b140f374b289a7c2befc338f42ebe6441b7ea838a042bbd5acbfca6ec875818

FROM ${RUST_IMAGE} AS builder
ARG RUST_VERSION

WORKDIR /workspace
ENV RUSTUP_TOOLCHAIN=${RUST_VERSION}
COPY . .
RUN --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=/usr/local/cargo/git \
    --mount=type=cache,target=/workspace/target \
    cargo build --locked --release -p shardline --bin shardline \
    && cp /workspace/target/release/shardline /tmp/shardline

FROM ${RUNTIME_IMAGE} AS runtime

RUN apt-get update \
    && apt-get install --yes --no-install-recommends ca-certificates libssl3 \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd --system --gid 10001 shardline \
    && useradd --system --uid 10001 --gid 10001 --create-home --home-dir /var/lib/shardline shardline \
    && mkdir -p /var/lib/shardline \
    && chown -R shardline:shardline /var/lib/shardline

COPY --from=builder /tmp/shardline /usr/local/bin/shardline

USER 10001:10001
# Ensure the container can run with arbitrary non-root UIDs
ENV SHARDLINE_BIND_ADDR=0.0.0.0:8080
ENV SHARDLINE_ROOT_DIR=/var/lib/shardline
ENV SHARDLINE_CHUNK_SIZE_BYTES=65536

EXPOSE 8080
VOLUME ["/var/lib/shardline"]
STOPSIGNAL SIGINT

ENTRYPOINT ["/usr/local/bin/shardline"]
CMD ["serve"]