Dockerfile em dois estágios (compila guara-cli e copia o binário para debian-slim com smartmontools). Serve para hospedeiros Linux, servidores sem desktop e arquivos de imagem forense. A interface gráfica fica de fora de propósito: o guara ui só aceita 127.0.0.1. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RRZm8uTVN3WLTwcbrDQAUM
26 lines
1.1 KiB
Docker
26 lines
1.1 KiB
Docker
# syntax=docker/dockerfile:1
|
|
# Guará CLI image. Intended for Linux hosts, headless servers and forensic image files.
|
|
# The graphical interface is not served from the container (see docs/docker.md).
|
|
|
|
FROM rust:1-slim-bookworm AS build
|
|
WORKDIR /src
|
|
# The CLI embeds the web interface at compile time (include_str!), so it needs apps/gui/ui.
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY crates crates
|
|
COPY apps/gui/ui apps/gui/ui
|
|
RUN cargo build --release --locked -p guara-cli
|
|
|
|
FROM debian:bookworm-slim
|
|
# smartmontools gives `guara health` access to SMART data.
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends smartmontools ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY --from=build /src/target/release/guara /usr/local/bin/guara
|
|
LABEL org.opencontainers.image.title="Guará" \
|
|
org.opencontainers.image.description="File recovery for hard drives, SSDs and USB sticks (CLI)" \
|
|
org.opencontainers.image.source="https://github.com/lucasrguerra/guara" \
|
|
org.opencontainers.image.licenses="MIT OR Apache-2.0"
|
|
WORKDIR /data
|
|
ENTRYPOINT ["guara"]
|
|
CMD ["--help"]
|