Enhancement: use apt only when needed docker-entrypoint.sh

Use apt-get only if we really need to install a package: stop running unnecessary apt-get update every time we start the container.
This commit is contained in:
gawa971 2024-09-23 16:10:19 +07:00 committed by GitHub
parent 4146b140d3
commit 9c4ca85a1e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -122,27 +122,37 @@ install_languages() {
if [ ${#langs[@]} -eq 0 ]; then
return
fi
apt-get update
# Build list of packages to install
for lang in "${langs[@]}"; do
pkg="tesseract-ocr-$lang"
if dpkg --status "$pkg" &>/dev/null; then
echo "Package $pkg already installed!"
continue
fi
if ! apt-cache show "$pkg" &>/dev/null; then
echo "Package $pkg not found! :("
continue
fi
echo "Installing package $pkg..."
if ! apt-get --assume-yes install "$pkg" &>/dev/null; then
echo "Could not install $pkg"
exit 1
else
to_install+=($pkg)
fi
done
# Use apt only when we install packages
if [ ${#to_install[@]} > 0 ]; then
apt-get update
for pkg in "${to_install[@]}"; do
if ! apt-cache show "$pkg" &>/dev/null; then
echo "Skipped $pkg: Package not found! :("
continue
fi
echo "Installing package $pkg..."
if ! apt-get --assume-yes install "$pkg" &>/dev/null; then
echo "Could not install $pkg"
exit 1
fi
done
fi
}
echo "Paperless-ngx docker container starting..."