From d6d58bd13f59303d3bad6b0b93b227b548c8417f Mon Sep 17 00:00:00 2001 From: Alexandre Date: Fri, 9 Sep 2022 17:32:11 +0200 Subject: [PATCH] new LSIO logic --- bazarr/Dockerfile | 2 +- booksonic_air/Dockerfile | 21 ++++++++++++--------- calibre/Dockerfile | 30 ++++++++++++++++-------------- calibre_web/Dockerfile | 30 ++++++++++++++++-------------- code-server/Dockerfile | 23 +++++++++++------------ plex/Dockerfile | 2 +- qbittorrent/Dockerfile | 2 +- sonarr/Dockerfile | 2 +- 8 files changed, 59 insertions(+), 53 deletions(-) diff --git a/bazarr/Dockerfile b/bazarr/Dockerfile index a2498b8ce..08426d5e2 100644 --- a/bazarr/Dockerfile +++ b/bazarr/Dockerfile @@ -38,7 +38,7 @@ RUN \ && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ \ # Correct config location - && for file in $(grep -sril '/config[ /$]' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ \ # Avoid changing /config permissions && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done diff --git a/booksonic_air/Dockerfile b/booksonic_air/Dockerfile index d5066cbae..fb2c3387c 100644 --- a/booksonic_air/Dockerfile +++ b/booksonic_air/Dockerfile @@ -28,19 +28,22 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \ S6_SERVICES_GRACETIME=0 ENV BOOKSONIC_AIR_SETTINGS="/data" + +# Global LSIO modifications +ARG CONFIGLOCATION="/data" +# hadolint ignore=SC2015, SC2013 RUN \ # Avoid custom-init.d duplications - grep -sril "Potential tampering with custom" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs -r rm \ - \ - # Prevent changing ownership of /config - #&& grep -sril "/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs grep -riL "/config/" | xargs -r rm \ - && if [ -f /etc/cont-init.d/10-adduser ]; then sed -i "/chown abc:abc \/config$/d" /etc/cont-init.d/10-adduser; fi \ + for file in $(grep -sril 'Potential tampering with custom' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do rm -f "$file"; done \ \ # Allow UID and GID setting - && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do \ - sed -i 's/bash/bashio/g' "$file" && \ - sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && \ - sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done + && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ + \ + # Correct config location + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + \ + # Avoid changing /config permissions + && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done ################## # 3 Install apps # diff --git a/calibre/Dockerfile b/calibre/Dockerfile index 9da6f5c6f..bdbb73541 100644 --- a/calibre/Dockerfile +++ b/calibre/Dockerfile @@ -28,23 +28,25 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ S6_SERVICES_GRACETIME=0 -# Allow UID and GID setting -RUN grep -sril "Potential tampering with custom" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs -r rm \ - \ - # Prevent changing ownership of /config - && grep -sril "/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs grep -riL "/config/" | xargs -r rm \ +# Global LSIO modifications +ARG CONFIGLOCATION="/config/addons_config/calibre" +# hadolint ignore=SC2015, SC2013 +RUN \ + # Avoid custom-init.d duplications + for file in $(grep -sril 'Potential tampering with custom' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do rm -f "$file"; done \ \ # Allow UID and GID setting - && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do \ - sed -i 's/bash/bashio/g' "$file" && \ - sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && \ - sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ + && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ \ - # Change home folder location - && sed -i 's|/config|/config/addons_config/calibre|g' /defaults/* \ - && sed -i 's|/config|/config/addons_config/calibre|g' /etc/cont-init.d/* \ - && sed -i 's|/config|/config/addons_config/calibre|g' /etc/services.d/*/run \ - && usermod --home /config/addons_config/calibre abc + # Correct config location + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + \ + # Avoid changing /config permissions + && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done + +# Specific images modifications +RUN \ + usermod --home /config/addons_config/calibre abc ################## # 3 Install apps # diff --git a/calibre_web/Dockerfile b/calibre_web/Dockerfile index 9d019af13..60e033639 100644 --- a/calibre_web/Dockerfile +++ b/calibre_web/Dockerfile @@ -28,23 +28,25 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ S6_SERVICES_GRACETIME=0 -RUN grep -sril "Potential tampering with custom" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs -r rm \ - \ - # Prevent changing ownership of /config - #&& grep -sril "/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs grep -riL "/config/" | xargs -r rm \ - && if [ -f /etc/cont-init.d/10-adduser ]; then sed -i "/chown abc:abc \/config$/d" /etc/cont-init.d/10-adduser; fi \ +# Global LSIO modifications +ARG CONFIGLOCATION="/config/addons_config/calibre-web" +# hadolint ignore=SC2015, SC2013 +RUN \ + # Avoid custom-init.d duplications + for file in $(grep -sril 'Potential tampering with custom' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do rm -f "$file"; done \ \ # Allow UID and GID setting - && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do \ - sed -i 's/bash/bashio/g' "$file" && \ - sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && \ - sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ + && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ \ - # Change home folder location - && sed -i 's|/config|/config/addons_config/calibre-web|g' /defaults/* \ - && sed -i 's|/config|/config/addons_config/calibre-web|g' /etc/cont-init.d/* \ - && sed -i 's|/config|/config/addons_config/calibre-web|g' /etc/services.d/*/run \ - && usermod --home /config/addons_config/calibre-web abc + # Correct config location + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + \ + # Avoid changing /config permissions + && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done + +# Specific images modifications +RUN \ + usermod --home /config/addons_config/calibre abc ################## # 3 Install apps # diff --git a/code-server/Dockerfile b/code-server/Dockerfile index f3f83d31d..3ead06c1b 100644 --- a/code-server/Dockerfile +++ b/code-server/Dockerfile @@ -27,22 +27,21 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ S6_SERVICES_GRACETIME=0 +# Global LSIO modifications +ARG CONFIGLOCATION="/data" +# hadolint ignore=SC2015, SC2013 RUN \ # Avoid custom-init.d duplications - grep -sril "Potential tampering with custom" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs -r rm \ - \ - # Prevent changing ownership of /config - #&& grep -sril "/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d | xargs grep -riL "/config/" | xargs -r rm \ - && if [ -f /etc/cont-init.d/10-adduser ]; then sed -i "/chown abc:abc \/config$/d" /etc/cont-init.d/10-adduser; fi \ + for file in $(grep -sril 'Potential tampering with custom' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do rm -f "$file"; done \ \ # Allow UID and GID setting - && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do \ - sed -i 's/bash/bashio/g' "$file" && \ - sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && \ - sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ - # MOFIFY DATA PATH - && sed -i "s|config|data|g" /etc/services.d/code-server/run \ - && sed -i "s|config|data|g" /etc/cont-init.d/30-config + && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ + \ + # Correct config location + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + \ + # Avoid changing /config permissions + && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done ################## # 3 Install apps # diff --git a/plex/Dockerfile b/plex/Dockerfile index 766e71ccc..641cbca34 100644 --- a/plex/Dockerfile +++ b/plex/Dockerfile @@ -46,7 +46,7 @@ RUN \ && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ \ # Correct config location - && for file in $(grep -sril '/config[ /$]' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ \ # Avoid changing /config permissions && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done diff --git a/qbittorrent/Dockerfile b/qbittorrent/Dockerfile index 7fa9d563e..d1f742e2e 100644 --- a/qbittorrent/Dockerfile +++ b/qbittorrent/Dockerfile @@ -58,7 +58,7 @@ RUN \ && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ \ # Correct config location - && for file in $(grep -sril '/config[ /$]' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ \ # Avoid changing /config permissions && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done diff --git a/sonarr/Dockerfile b/sonarr/Dockerfile index 63c73590a..8e9a72ea3 100644 --- a/sonarr/Dockerfile +++ b/sonarr/Dockerfile @@ -39,7 +39,7 @@ RUN \ && for file in $(grep -srl "PUID:-911" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' "$file" && sed -i 's/{PUID:-911}/(bashio::config "PUID")/g' "$file" && sed -i 's/{PGID:-911}/(bashio::config "PGID")/g' "$file"; done \ \ # Correct config location - && for file in $(grep -sril '/config[ /$]' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ + && for file in $(grep -sril '/config[ /$]' /defaults /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do sed -i "s=/config=$CONFIGLOCATION=g" "$file"; done \ \ # Avoid changing /config permissions && for file in $(grep -srl "chown abc:abc \/config" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "/chown abc:abc \/config/d" "$file"; done