mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2026-05-21 17:11:49 +00:00
26 lines
1.1 KiB
Bash
Executable File
26 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Install additional Python packages from the EXTRA_PACKAGES env var.
|
|
#
|
|
# Why no marker / skip-cache:
|
|
# A previous version of this script wrote a marker file to
|
|
# /datastore/.extra_packages_installed and skipped pip when it was present.
|
|
# That marker lived on the persistent /datastore volume, but the pip-installed
|
|
# packages live in the container's writable layer — so after a `docker compose
|
|
# down && up` (or any container recreation) the packages were gone while the
|
|
# marker remained, and the script wrongly believed everything was installed.
|
|
# See: https://github.com/dgtlmoon/changedetection.io/issues/4140
|
|
#
|
|
# Running pip on every start is correct by construction: when the requirements
|
|
# are already satisfied, pip is a fast no-op ("Requirement already satisfied"),
|
|
# adding ~1s per package. That's a small price for not lying about the install
|
|
# state — and pip's own resolver is the authoritative check, not a flat file.
|
|
if [ -n "$EXTRA_PACKAGES" ]; then
|
|
echo "Ensuring extra packages installed: $EXTRA_PACKAGES"
|
|
pip3 install --no-cache-dir $EXTRA_PACKAGES
|
|
fi
|
|
|
|
# Execute the main command
|
|
exec "$@"
|