Files
2026-07-26 21:17:57 -03:00

57 lines
1.4 KiB
Docker

# syntax=docker/dockerfile:1.7
FROM rust:1.96-bookworm AS builder
WORKDIR /build
RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
libssl-dev \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
COPY Cargo.toml Cargo.lock ./
COPY src ./src
COPY migrations ./migrations
RUN cargo build --locked --release --bin backend \
&& strip target/release/backend
FROM debian:bookworm-slim AS runtime
ARG APP_UID=10001
ARG APP_GID=10001
RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
ca-certificates \
chromium \
curl \
fonts-liberation \
fonts-noto-color-emoji \
libssl3 \
tini \
&& rm -rf /var/lib/apt/lists/* \
&& groupadd --gid "${APP_GID}" app \
&& useradd --uid "${APP_UID}" --gid "${APP_GID}" --create-home --shell /usr/sbin/nologin app \
&& install -d --owner=app --group=app /app /data/media /tmp/leads-extractor-cache
WORKDIR /app
COPY --from=builder /build/target/release/backend /usr/local/bin/leads-extractor
COPY --from=builder /build/migrations ./migrations
ENV SERVER_HOST=0.0.0.0 \
SERVER_PORT=8080 \
MEDIA_DIR=/data/media \
BROWSER_NO_SANDBOX=true \
RUST_LOG=backend=info \
XDG_CACHE_HOME=/tmp/leads-extractor-cache
USER app:app
EXPOSE 8080
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["/usr/local/bin/leads-extractor"]