diff --git a/base/Dockerfile b/base/Dockerfile index ea229ed..9e158ac 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -20,14 +20,12 @@ ENV \ YARN_HTTP_TIMEOUT=1000000 \ TERM="xterm-256color" -# Copy root filesystem -COPY rootfs / - # Set shell SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Install base system ARG BUILD_ARCH=amd64 +ARG S6_OVERLAY_VERSION="3.1.2.1" RUN \ apt-get update \ \ @@ -38,22 +36,21 @@ RUN \ tzdata=2022g-0ubuntu0.20.04.1 \ xz-utils=5.2.4-1ubuntu1.1 \ \ - && S6_VERSION="3.1.2.1" \ && S6_ARCH="${BUILD_ARCH}" \ && if [ "${BUILD_ARCH}" = "i386" ]; then S6_ARCH="i686"; \ elif [ "${BUILD_ARCH}" = "amd64" ]; then S6_ARCH="x86_64"; \ elif [ "${BUILD_ARCH}" = "armv7" ]; then S6_ARCH="arm"; fi \ \ - && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-noarch.tar.xz" \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \ | tar -C / -Jxpf - \ \ - && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \ | tar -C / -Jxpf - \ \ - && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \ | tar -C / -Jxpf - \ \ - && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-symlinks-arch.tar.xz" \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" \ | tar -C / -Jxpf - \ \ && mkdir -p /etc/fix-attrs.d \ @@ -81,6 +78,12 @@ RUN \ /var/{cache,log}/* \ /var/lib/apt/lists/* +# Copy root filesystem +COPY rootfs / + +# Copy s6-overlay adjustments +COPY s6-overlay /package/admin/s6-overlay-${S6_OVERLAY_VERSION}/ + # Entrypoint & CMD ENTRYPOINT [ "/init" ] diff --git a/base/rootfs/etc/cont-init.d/00-banner.sh b/base/s6-overlay/etc/s6-rc/scripts/base-addon-banner similarity index 98% rename from base/rootfs/etc/cont-init.d/00-banner.sh rename to base/s6-overlay/etc/s6-rc/scripts/base-addon-banner index 7184387..82c8686 100755 --- a/base/rootfs/etc/cont-init.d/00-banner.sh +++ b/base/s6-overlay/etc/s6-rc/scripts/base-addon-banner @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Base Images # Displays a simple add-on banner on startup diff --git a/base/rootfs/etc/cont-init.d/01-log-level.sh b/base/s6-overlay/etc/s6-rc/scripts/base-addon-log-level similarity index 98% rename from base/rootfs/etc/cont-init.d/01-log-level.sh rename to base/s6-overlay/etc/s6-rc/scripts/base-addon-log-level index a8ae7c8..6d0b8bb 100755 --- a/base/rootfs/etc/cont-init.d/01-log-level.sh +++ b/base/s6-overlay/etc/s6-rc/scripts/base-addon-log-level @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Base Images # Sets the log level correctly @@ -9,7 +10,7 @@ declare log_level if bashio::config.exists log_level; then # Find the matching LOG_LEVEL - log_level=$(bashio::string.lower "$(bashio::config log_level)") + log_level=$(bashio::string.lower "$(bashio::config log_level)") case "${log_level}" in all) log_level="${__BASHIO_LOG_LEVEL_ALL}" diff --git a/base/s6-overlay/etc/s6-rc/scripts/base-addon-timezone b/base/s6-overlay/etc/s6-rc/scripts/base-addon-timezone new file mode 100755 index 0000000..df42694 --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/scripts/base-addon-timezone @@ -0,0 +1,12 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Base Images +# Configures the timezone +# ============================================================================== + +bashio::log.info "Configuring timezone (${TZ:-None})..." + +ln --symbolic --no-dereference --force "/usr/share/zoneinfo/${TZ:-UTC}" /etc/localtime +echo "${TZ:-UTC}" > /etc/timezone +dpkg-reconfigure --frontend noninteractive tzdata 2> /dev/null diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-banner/type b/base/s6-overlay/etc/s6-rc/sources/base-addon-banner/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/sources/base-addon-banner/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-banner/up b/base/s6-overlay/etc/s6-rc/sources/base-addon-banner/up new file mode 100644 index 0000000..450ad6c --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/sources/base-addon-banner/up @@ -0,0 +1 @@ +/package/admin/s6-overlay/etc/s6-rc/scripts/base-addon-banner \ No newline at end of file diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/dependencies.d/base-addon-banner b/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/dependencies.d/base-addon-banner new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/type b/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/up b/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/up new file mode 100644 index 0000000..ec4100e --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/sources/base-addon-log-level/up @@ -0,0 +1 @@ +/package/admin/s6-overlay/etc/s6-rc/scripts/base-addon-log-level \ No newline at end of file diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/dependencies.d/base-addon-banner b/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/dependencies.d/base-addon-banner new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/type b/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/up b/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/up new file mode 100644 index 0000000..3b7bad0 --- /dev/null +++ b/base/s6-overlay/etc/s6-rc/sources/base-addon-timezone/up @@ -0,0 +1 @@ +/package/admin/s6-overlay/etc/s6-rc/scripts/base-addon-timezone \ No newline at end of file diff --git a/base/s6-overlay/etc/s6-rc/sources/base/contents.d/base-addon-banner b/base/s6-overlay/etc/s6-rc/sources/base/contents.d/base-addon-banner new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/base/contents.d/base-addon-log-level b/base/s6-overlay/etc/s6-rc/sources/base/contents.d/base-addon-log-level new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/base/contents.d/base-addon-timezone b/base/s6-overlay/etc/s6-rc/sources/base/contents.d/base-addon-timezone new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/fix-attrs/dependencies.d/base-addon-banner b/base/s6-overlay/etc/s6-rc/sources/fix-attrs/dependencies.d/base-addon-banner new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/legacy-cont-init/dependencies.d/base-addon-log-level b/base/s6-overlay/etc/s6-rc/sources/legacy-cont-init/dependencies.d/base-addon-log-level new file mode 100644 index 0000000..e69de29 diff --git a/base/s6-overlay/etc/s6-rc/sources/legacy-cont-init/dependencies.d/base-addon-timezone b/base/s6-overlay/etc/s6-rc/sources/legacy-cont-init/dependencies.d/base-addon-timezone new file mode 100644 index 0000000..e69de29