From 86fe9724316369d9e3094f9503c2a101cd60fab4 Mon Sep 17 00:00:00 2001 From: Colin Seymour Date: Sun, 27 Oct 2024 16:43:53 +0000 Subject: [PATCH] Switch to new S6 service configuration (#40) * Add new service files * Remove moved file * Move files * Add exec perm * Update for new services * Remove xz-utils after use * Check labels * Move labels to build * Typo * List images * Fixit * Add super lint * Update labels * Whoops * Remove superlint * Add teslamate dependency * Fix url --- .github/workflows/test.yaml | 4 +++ Dockerfile | 29 ++++--------------- build.json | 9 ++++++ {scripts => rootfs}/dashboards.sh | 0 .../etc/nginx/conf.d}/teslamate.conf | 0 .../s6-rc.d/nginx/dependencies.d/base | 0 .../s6-rc.d/nginx/dependencies.d/teslamate | 0 .../etc/s6-overlay/s6-rc.d}/nginx/finish | 0 .../etc/s6-overlay/s6-rc.d}/nginx/run | 0 rootfs/etc/s6-overlay/s6-rc.d/nginx/type | 1 + .../s6-rc.d/teslamate/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d}/teslamate/finish | 0 .../etc/s6-overlay/s6-rc.d}/teslamate/run | 0 rootfs/etc/s6-overlay/s6-rc.d/teslamate/type | 1 + .../s6-overlay/s6-rc.d/user/contents.d/nginx | 0 .../s6-rc.d/user/contents.d/teslamate | 0 16 files changed, 20 insertions(+), 24 deletions(-) rename {scripts => rootfs}/dashboards.sh (100%) mode change 100644 => 100755 rename {services/nginx => rootfs/etc/nginx/conf.d}/teslamate.conf (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/base create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/teslamate rename {services => rootfs/etc/s6-overlay/s6-rc.d}/nginx/finish (100%) mode change 100644 => 100755 rename {services => rootfs/etc/s6-overlay/s6-rc.d}/nginx/run (100%) mode change 100644 => 100755 create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/nginx/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/teslamate/dependencies.d/base rename {services => rootfs/etc/s6-overlay/s6-rc.d}/teslamate/finish (100%) mode change 100644 => 100755 rename {services => rootfs/etc/s6-overlay/s6-rc.d}/teslamate/run (100%) mode change 100644 => 100755 create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/teslamate/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/teslamate diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index bfd784d..978a7af 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -42,3 +42,7 @@ jobs: --${{ matrix.arch }} \ --target /data/ \ --addon + + - name: Image labels + run: | + docker inspect ghcr.io/lildude/ha-addon-teslamate-${{ matrix.arch }} --format='{{json .Config.Labels}}' | jq diff --git a/Dockerfile b/Dockerfile index 2caaea0..8b2b33f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,6 @@ RUN \ set -x \ && apt-get update && apt-get install -y --no-install-recommends \ bash \ - bind9utils \ ca-certificates \ curl \ jq \ @@ -33,7 +32,6 @@ RUN \ postgresql-client \ tzdata \ xz-utils \ - && rm -rf /var/lib/apt/lists/* \ && S6_ARCH="${BUILD_ARCH}" \ && if [ "${BUILD_ARCH}" = "amd64" ]; then S6_ARCH="x86_64"; \ elif [ "${BUILD_ARCH}" = "armv7" ]; then S6_ARCH="arm"; fi \ @@ -41,33 +39,16 @@ RUN \ && curl -Ls "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" | tar xpJ -C / \ && curl -Ls "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" | tar Jxp -C / \ && curl -Ls "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" | tar Jxp -C / \ - && mkdir -p /etc/fix-attrs.d \ - && mkdir -p /etc/services.d \ && mkdir -p /tmp/bashio \ && curl -Ls "https://github.com/hassio-addons/bashio/archive/v${BASHIO_VERSION}.tar.gz" | tar xz --strip 1 -C /tmp/bashio \ && mv /tmp/bashio/lib /usr/lib/bashio \ + && apt purge -y xz-utils \ && ln -s /usr/lib/bashio/bashio /usr/bin/bashio \ - && rm -rf /tmp/bashio + && rm -rf /var/lib/apt/lists/* /tmp/* -COPY --chown=root scripts/*.sh / -RUN chmod a+x /*.sh - -COPY --chown=root services/teslamate/run services/teslamate/finish /etc/services.d/teslamate/ -RUN chmod a+x /etc/services.d/teslamate/* - -COPY --chown=root services/nginx/run services/nginx/finish /etc/services.d/nginx/ -RUN chmod a+x /etc/services.d/nginx/* - -COPY --chown=root services/nginx/teslamate.conf /etc/nginx/conf.d/ - -COPY --from=grafana --chown=root /dashboards /dashboards -COPY --from=grafana --chown=root /dashboards_internal /dashboards +COPY rootfs / +COPY --from=grafana /dashboards /dashboards +COPY --from=grafana /dashboards_internal /dashboards # S6-Overlay ENTRYPOINT ["/init"] - -LABEL \ - org.opencontainers.image.title="Home Assistant Add-on: TeslaMate" \ - org.opencontainers.image.description="A self-hosted data logger for your Tesla." \ - org.opencontainers.image.source="https://github.com/lildude/ha-addon-ghostfolio/" \ - org.opencontainers.image.licenses="MIT" diff --git a/build.json b/build.json index 5013e19..e61c276 100644 --- a/build.json +++ b/build.json @@ -9,5 +9,14 @@ }, "codenotary": { "signer": "colin@symr.io" + }, + "labels":{ + "maintainer": "Colin Seymour (https://github.com/lildude)", + "org.opencontainers.image.authors": "Colin Seymour (https://github.com/lildude)", + "org.opencontainers.image.description": "A self-hosted data logger for your Tesla.", + "org.opencontainers.image.documentation": "https://github.com/lildude/ha-addon-teslamate/blob/main/DOCS.md", + "org.opencontainers.image.licenses": "MIT", + "org.opencontainers.image.source": "https://github.com/lildude/ha-addon-teslamate/", + "org.opencontainers.image.title": "Home Assistant Add-on: TeslaMate" } } \ No newline at end of file diff --git a/scripts/dashboards.sh b/rootfs/dashboards.sh old mode 100644 new mode 100755 similarity index 100% rename from scripts/dashboards.sh rename to rootfs/dashboards.sh diff --git a/services/nginx/teslamate.conf b/rootfs/etc/nginx/conf.d/teslamate.conf similarity index 100% rename from services/nginx/teslamate.conf rename to rootfs/etc/nginx/conf.d/teslamate.conf diff --git a/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/teslamate b/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/teslamate new file mode 100644 index 0000000..e69de29 diff --git a/services/nginx/finish b/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish old mode 100644 new mode 100755 similarity index 100% rename from services/nginx/finish rename to rootfs/etc/s6-overlay/s6-rc.d/nginx/finish diff --git a/services/nginx/run b/rootfs/etc/s6-overlay/s6-rc.d/nginx/run old mode 100644 new mode 100755 similarity index 100% rename from services/nginx/run rename to rootfs/etc/s6-overlay/s6-rc.d/nginx/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/nginx/type b/rootfs/etc/s6-overlay/s6-rc.d/nginx/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/nginx/type @@ -0,0 +1 @@ +longrun diff --git a/rootfs/etc/s6-overlay/s6-rc.d/teslamate/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/teslamate/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/services/teslamate/finish b/rootfs/etc/s6-overlay/s6-rc.d/teslamate/finish old mode 100644 new mode 100755 similarity index 100% rename from services/teslamate/finish rename to rootfs/etc/s6-overlay/s6-rc.d/teslamate/finish diff --git a/services/teslamate/run b/rootfs/etc/s6-overlay/s6-rc.d/teslamate/run old mode 100644 new mode 100755 similarity index 100% rename from services/teslamate/run rename to rootfs/etc/s6-overlay/s6-rc.d/teslamate/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/teslamate/type b/rootfs/etc/s6-overlay/s6-rc.d/teslamate/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/teslamate/type @@ -0,0 +1 @@ +longrun diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/teslamate b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/teslamate new file mode 100644 index 0000000..e69de29