feat(crawler): CRAWLER_CHROMIUM_BINARY to use system chromium (0.45.0)
Skips the chromiumoxide fetcher when CRAWLER_CHROMIUM_BINARY is set, unblocking Linux_arm64 deployments (Raspberry Pi 5) where the fetcher's upstream snapshot bucket has no reliable build. The Dockerfile gains an INSTALL_CHROMIUM build-arg that adds chromium-headless-shell + fonts-liberation to the runtime image when set; default off so cloud/x86 images stay slim. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,8 +21,23 @@ RUN touch src/main.rs src/lib.rs && cargo build --locked --release
|
||||
FROM debian:bookworm-slim
|
||||
# `curl` is for the container HEALTHCHECK; `ca-certificates` is for
|
||||
# outbound HTTPS (crawler covers/pages).
|
||||
#
|
||||
# INSTALL_CHROMIUM is an opt-in for deployments that can't use the
|
||||
# chromiumoxide fetcher path (notably Linux_arm64 / Raspberry Pi, where
|
||||
# the upstream snapshot bucket has no usable build). When `true`, adds
|
||||
# Debian's apt-packaged headless chromium plus a baseline font set —
|
||||
# pair with `CRAWLER_CHROMIUM_BINARY=/usr/bin/chromium-headless-shell`
|
||||
# at runtime so the launcher uses it. Default `false` keeps cloud/x86
|
||||
# images slim.
|
||||
#
|
||||
# Build the Pi image with:
|
||||
# docker compose build --build-arg INSTALL_CHROMIUM=true backend
|
||||
ARG INSTALL_CHROMIUM=false
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates curl \
|
||||
&& if [ "$INSTALL_CHROMIUM" = "true" ]; then \
|
||||
apt-get install -y --no-install-recommends chromium-headless-shell fonts-liberation; \
|
||||
fi \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Non-root runtime user. The API binary doesn't need any root
|
||||
|
||||
Reference in New Issue
Block a user