mirror of
https://github.com/linuxserver/docker-mods.git
synced 2026-03-23 00:05:28 +08:00
Merge pull request #638 from linuxserver/mod-scripts-package-install
This commit is contained in:
commit
054fa92a52
@ -2,6 +2,7 @@
|
||||
|
||||
These files are used by Linuxserver build processes to handle mods in our images. Not for end-user consumption.
|
||||
|
||||
* **16.05.23:** - Add package installer.
|
||||
* **15.05.23:** - Add DOCKER_MODS_DEBUG env.
|
||||
* **19.03.23:** - Add quay.io support for mods.
|
||||
* **25.02.23:** - Inject branding.
|
||||
|
||||
69
package-install.v1
Executable file
69
package-install.v1
Executable file
@ -0,0 +1,69 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
if [[ -f "/mod-pip-packages-to-install.list" ]]; then
|
||||
IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)"
|
||||
if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then
|
||||
if [[ -f /usr/bin/apt ]]; then
|
||||
echo "python3-venv" >> /mod-repo-packages-to-install.list
|
||||
elif [[ -f /sbin/apk ]]; then
|
||||
echo "python3" >> /mod-repo-packages-to-install.list
|
||||
elif [[ -f /usr/sbin/pacman ]]; then
|
||||
echo "python" >> /mod-repo-packages-to-install.list
|
||||
elif [[ -f /usr/bin/dnf ]]; then
|
||||
echo "python3" >> /mod-repo-packages-to-install.list
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f "/mod-repo-packages-to-install.list" ]]; then
|
||||
IFS=' ' read -ra REPO_PACKAGES <<< "$(tr '\n' ' ' < /mod-repo-packages-to-install.list)"
|
||||
if [[ ${#REPO_PACKAGES[@]} -ne 0 ]] && [[ ${REPO_PACKAGES[*]} != "" ]]; then
|
||||
echo "[mod-init] **** Installing all mod packages ****"
|
||||
if [[ -f /usr/bin/apt ]]; then
|
||||
export DEBIAN_FRONTEND="noninteractive"
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends \
|
||||
"${REPO_PACKAGES[@]}"
|
||||
elif [[ -f /sbin/apk ]]; then
|
||||
apk add --no-cache \
|
||||
"${REPO_PACKAGES[@]}"
|
||||
elif [[ -f /usr/sbin/pacman ]]; then
|
||||
pacman -Sy --noconfirm \
|
||||
"${REPO_PACKAGES[@]}"
|
||||
elif [[ -f /usr/bin/dnf ]]; then
|
||||
dnf install -y --setopt=install_weak_deps=False --best \
|
||||
"${REPO_PACKAGES[@]}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f "/mod-pip-packages-to-install.list" ]]; then
|
||||
IFS=' ' read -ra PIP_PACKAGES <<< "$(tr '\n' ' ' < /mod-pip-packages-to-install.list)"
|
||||
if [[ ${#PIP_PACKAGES[@]} -ne 0 ]] && [[ ${PIP_PACKAGES[*]} != "" ]]; then
|
||||
echo "[mod-init] **** Installing all pip packages ****"
|
||||
if [[ ! -d /lsiopy/bin ]]; then
|
||||
echo "**** Creating venv ****"
|
||||
python3 -m venv /lsiopy
|
||||
fi
|
||||
python3 -m pip install -U pip wheel setuptools
|
||||
PIP_ARGS=()
|
||||
if [[ -f /usr/bin/apt ]] && grep -q 'ID=ubuntu' /etc/os-release; then
|
||||
PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/ubuntu/")
|
||||
elif [[ -f /sbin/apk ]]; then
|
||||
ALPINE_VER=$(grep main /etc/apk/repositories | sed 's|.*alpine/v||' | sed 's|/main.*||')
|
||||
if [[ "${ALPINE_VER}" = "3.14" ]]; then
|
||||
PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine/")
|
||||
else
|
||||
PIP_ARGS+=("-f" "https://wheel-index.linuxserver.io/alpine-${ALPINE_VER}/")
|
||||
fi
|
||||
fi
|
||||
python3 -m pip install \
|
||||
"${PIP_ARGS[@]}" \
|
||||
"${PIP_PACKAGES[@]}"
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -rf \
|
||||
/mod-repo-packages-to-install.list \
|
||||
/mod-pip-packages-to-install.list
|
||||
Loading…
x
Reference in New Issue
Block a user