diff --git a/Dockerfile b/Dockerfile index 68c83835..aee7fd8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -193,7 +193,8 @@ RUN echo "[+] Initializing image collection..." \ "$DATA_DIR"/archive "$DATA_DIR"/archive/users "$DATA_DIR"/personas \ "$DATA_DIR"/tmp "$DATA_DIR"/tmp/* \ "$TMP_DIR" "$LIB_DIR" "$PLAYWRIGHT_BROWSERS_PATH" \ - 2>/dev/null || true) + 2>/dev/null || true) \ + && find "$TMP_DIR" -mindepth 1 -maxdepth 1 -exec rm -rf {} + RUN chmod +x "$CODE_DIR"/bin/*.sh \ && chmod g+w "$TMP_DIR" "$LIB_DIR" "$PLAYWRIGHT_BROWSERS_PATH" diff --git a/bin/docker_entrypoint.sh b/bin/docker_entrypoint.sh index 8b0b8ac9..fc63fe42 100755 --- a/bin/docker_entrypoint.sh +++ b/bin/docker_entrypoint.sh @@ -142,6 +142,15 @@ ensure_runtime_tree() { chmod_if_possible "$path" } +ensure_runtime_tmp_tree() { + mkdir -p "$TMP_DIR" 2>/dev/null || true + [[ -e "$TMP_DIR" ]] || return 0 + if [[ "$(id -u)" == "0" ]]; then + chown -R "$PUID:$PGID" "$TMP_DIR" 2>/dev/null || true + fi + chmod_if_possible "$TMP_DIR" +} + run_as_archivebox() { if [[ "$(id -u)" == "0" ]]; then setpriv --reuid="$ARCHIVEBOX_USER" --regid="$ARCHIVEBOX_USER" --init-groups "$@" @@ -204,7 +213,7 @@ find /tmp "$TMP_DIR" -maxdepth 1 -type d -name "archivebox-chrome-profile.*" -mm ensure_dir "/home/$ARCHIVEBOX_USER" ensure_runtime_tree "$PLAYWRIGHT_BROWSERS_PATH" -ensure_runtime_tree "$TMP_DIR" +ensure_runtime_tmp_tree ensure_runtime_tree "$LIB_DIR" # (this check is written in blood in 2023, QEMU silently breaks things in ways that are not obvious) diff --git a/etc/package.json b/etc/package.json index af404498..fe64799d 100644 --- a/etc/package.json +++ b/etc/package.json @@ -1,6 +1,6 @@ { "name": "archivebox", - "version": "0.9.34rc62", + "version": "0.9.34rc63", "repository": "github:ArchiveBox/ArchiveBox", "license": "MIT", "dependencies": { diff --git a/pyproject.toml b/pyproject.toml index 1db5b89c..d4e2752c 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "archivebox" -version = "0.9.34rc62" +version = "0.9.34rc63" requires-python = ">=3.13" description = "Self-hosted internet archiving solution." authors = [{name = "Nick Sweeting", email = "pyproject.toml@archivebox.io"}] @@ -79,9 +79,9 @@ dependencies = [ ### Extractor dependencies (optional binaries detected at runtime via shutil.which) ### Binary/Package Management "abxbus==2.5.10", # EventBus API - "abxpkg>=1.11.178", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm - "abx-plugins>=1.11.182", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring - "abx-dl>=1.11.182", # shared ArchiveBox downloader package with blocking install preflight + "abxpkg>=1.11.179", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm + "abx-plugins>=1.11.183", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring + "abx-dl>=1.11.183", # shared ArchiveBox downloader package with blocking install preflight ### UUID7 backport for Python <3.14 "uuid7>=0.1.0; python_version < '3.14'", # provides the uuid_extensions module on Python 3.13 ]