From 1e28e1c613d07a8b7266fcd9001e1dfdb44cf4c8 Mon Sep 17 00:00:00 2001 From: TheGeneralist <180094941+thegeneralist01@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:35:08 +0200 Subject: [PATCH] fix: third round of Docker review issues Rust toolchain (P1): - Dockerfile: bump builder from rust:1.87 to rust:1.88; time@0.3.51, time-core@0.1.9, and time-macros@0.2.30 (present in Cargo.lock) all require MSRV 1.88, so the real cargo build --release step was failing single-file-cli wait mode (P2): - singlefile.rs: replace --browser-wait-until=networkidle2 with networkAlmostIdle; the single-file-cli option only accepts InteractiveTime/networkIdle/networkAlmostIdle/load/domContentLoaded (verified in options.js); networkidle2 is a Puppeteer concept that the CLI does not recognise, causing silent fallback to the earliest state and incomplete captures. networkAlmostIdle is the closest equivalent (<=2 open connections, matching Puppeteer's networkidle2 semantics) Build context size (P3): - .dockerignore: add target/, frontend/node_modules/, frontend/dist/; these can reach 1.4G+ after a local dev build and are never read by the Dockerfile, so sending them to the builder wastes time and memory --- .dockerignore | 6 ++++++ Dockerfile | 2 +- crates/archivr-core/src/downloader/singlefile.rs | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.dockerignore b/.dockerignore index 6c4f628..8a8018f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,3 +7,9 @@ docker/ # Development and VCS noise .git/ .gitignore + +# Generated build outputs — can be 1.4G (target/) and 243M (node_modules/) +# after a local dev build; exclude them to keep the build context small. +target/ +frontend/node_modules/ +frontend/dist/ diff --git a/Dockerfile b/Dockerfile index 7602011..699cd33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ ############################################################################### # Stage 1 – Build the Rust server and CLI binaries ############################################################################### -FROM rust:1.87-slim-bookworm AS builder +FROM rust:1.88-slim-bookworm AS builder RUN apt-get update && apt-get install -y --no-install-recommends \ pkg-config \ diff --git a/crates/archivr-core/src/downloader/singlefile.rs b/crates/archivr-core/src/downloader/singlefile.rs index 4e19110..97ebb81 100644 --- a/crates/archivr-core/src/downloader/singlefile.rs +++ b/crates/archivr-core/src/downloader/singlefile.rs @@ -90,8 +90,8 @@ fn save_with( .arg(&out_file) .arg(format!("--browser-executable-path={chrome}")) .arg("--browser-headless") - .arg("--browser-wait-until=networkidle2") - // Extra delay after networkidle2: Cloudflare Fonts injects @font-face + .arg("--browser-wait-until=networkAlmostIdle") + // Extra delay after networkAlmostIdle: Cloudflare Fonts injects @font-face // CSS after HTML parse, so the font hook needs more time to see it. .arg("--browser-wait-delay=2000") // Realistic UA: some origins block headless Chrome's default UA string.