From 30eaa32e05ca8f011d596312386d7885852e3e64 Mon Sep 17 00:00:00 2001 From: Jasper Date: Tue, 20 Dec 2022 14:53:02 -0800 Subject: [PATCH] cleanup + added modified init-adduser --- build/docker/root/etc/cont-init.d/10-adduser | 49 +++++++++++++++++++ build/docker/root/etc/cont-init.d/20-config | 15 ++++++ build/docker/root/etc/cont-init.d/30-config | 13 ----- .../root/etc/services.d/audiobookshelf/finish | 9 ++++ .../root/etc/services.d/audiobookshelf/run | 43 +--------------- 5 files changed, 74 insertions(+), 55 deletions(-) create mode 100644 build/docker/root/etc/cont-init.d/10-adduser create mode 100644 build/docker/root/etc/cont-init.d/20-config delete mode 100644 build/docker/root/etc/cont-init.d/30-config create mode 100644 build/docker/root/etc/services.d/audiobookshelf/finish diff --git a/build/docker/root/etc/cont-init.d/10-adduser b/build/docker/root/etc/cont-init.d/10-adduser new file mode 100644 index 000000000..2db617d08 --- /dev/null +++ b/build/docker/root/etc/cont-init.d/10-adduser @@ -0,0 +1,49 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +PUID=${AUDIOBOOKSHELF_UID:-1000} +PGID=${AUDIOBOOKSHELF_GID:-1000} + +groupmod -o -g "$PGID" abc +usermod -o -u "$PUID" abc + +echo ' +------------------------------------- + + █████╗ ██████╗ ███████╗ + ██╔══██╗██╔══██╗██╔════╝ + ███████║██████╔╝███████╗ + ██╔══██║██╔══██╗╚════██║ + ██║ ██║██████╔╝███████║ + ╚═╝ ╚═╝╚═════╝ ╚══════╝ + + https://audiobookshelf.org + +------------------------------------- +GID/UID +-------------------------------------' +echo " +User uid: $(id -u abc) +User gid: $(id -g abc) +------------------------------------- +" + +time32="$(date +%Y)" + +if [[ "${time32}" == "1970" || "${time32}" == "1969" ]] && [ "$(uname -m)" == "armv7l" ]; then + echo ' +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +Your DockerHost is running an outdated version of libseccomp + +To fix this, please visit https://docs.linuxserver.io/faq#libseccomp + +Apps will not behave correctly without this + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +' + sleep infinity +fi + +chown abc:abc /app +chown abc:abc /defaults diff --git a/build/docker/root/etc/cont-init.d/20-config b/build/docker/root/etc/cont-init.d/20-config new file mode 100644 index 000000000..bbf45cf4a --- /dev/null +++ b/build/docker/root/etc/cont-init.d/20-config @@ -0,0 +1,15 @@ +#!/usr/bin/with-contenv bash + +# folders +mkdir -p \ + /metadata/ \ + /config/ \ + /audiobooks/ \ + /podcasts/ + +# permissions +chown -R abc:abc \ + /config \ + /metadata \ + /audiobooks \ + /podcasts \ No newline at end of file diff --git a/build/docker/root/etc/cont-init.d/30-config b/build/docker/root/etc/cont-init.d/30-config deleted file mode 100644 index 06b8af3a0..000000000 --- a/build/docker/root/etc/cont-init.d/30-config +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/with-contenv bash - -# make config & metadata folder -mkdir -p \ - /config/ \ - /metadata/ - -# chown config & metadata directories if currently not set to abc -if [[ -d /config ]] && [[ "$(stat -c '%U' /config)" != "abc" ]]; then - chown -R abc:abc /config/ -elif [[ -d /metadata ]] && [[ "$(stat -c '%U' /metadata)" != "abc" ]]; then - chown -R abc:abc /metadata/ -fi diff --git a/build/docker/root/etc/services.d/audiobookshelf/finish b/build/docker/root/etc/services.d/audiobookshelf/finish new file mode 100644 index 000000000..20fb756f7 --- /dev/null +++ b/build/docker/root/etc/services.d/audiobookshelf/finish @@ -0,0 +1,9 @@ +#!/bin/sh + +if [ "$1" -eq 256 ]; then + e=$((128 + $2)) +else + e="$1" +fi + +echo "$e" > /run/s6-linux-init-container-results/exitcode \ No newline at end of file diff --git a/build/docker/root/etc/services.d/audiobookshelf/run b/build/docker/root/etc/services.d/audiobookshelf/run index 0577c76ef..7a9d188ca 100644 --- a/build/docker/root/etc/services.d/audiobookshelf/run +++ b/build/docker/root/etc/services.d/audiobookshelf/run @@ -1,48 +1,7 @@ #!/usr/bin/with-contenv bash -## Changing ownership recursively on /config still threw ownership errors for some reason -files=( - "/config/" - "/audiobooks/" - "/podcasts/" - "/metadata/" - "/config/users/njodb.properties" - "/config/libraryItems/njodb.properties" - "/config/sessions/njodb.properties" - "/config/libraries/njodb.properties" - "/config/settings/njodb.properties" - "/config/collections/njodb.properties" - "/config/playlists/njodb.properties" - "/config/authors/njodb.properties" - "/config/series/njodb.properties" - "/config/feeds/njodb.properties" - "/config/libraryItems" - "/config/settings/data" - "/config/users/data" - "/config/authors/data" - "/config/libraries/data" - "/config/series/data" - "/config/settings/tmp" - "/config/users/tmp" - "/config/authors/tmp" - "/config/libraries/tmp" - "/config/settings/cache" - "/config/users/cache" - "/config/authors/cache" - "/config/libraries/cache" -) - -for file in "${files[@]}"; do - if [[ -f "$file" ]] && [[ "$(stat -c '%U' "$file")" != "abc" ]]; then - chown abc:abc "$file" - elif [[ -d "$file" ]] && [[ "$(stat -c '%U' "$file")" != "abc" ]]; then - chown -R abc:abc "$file" - fi -done - - PORT=${PORT:-80} exec \ - s6-setuidgid abc npm --prefix /app/audiobookshelf/ --cache /app/audiobookshelf/ run start --port "${PORT}" \ No newline at end of file + s6-setuidgid abc npm --prefix /app/audiobookshelf/ --cache /app/audiobookshelf/ start --port "${PORT}" \ No newline at end of file