mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-09-01 09:43:32 +02:00
* fix(radarr): bump version so HA offers the rebuilt ls313 image The `6.3.0.10514` image tag was rebuilt and re-pushed on 2026-08-03 and now ships LinuxServer.io ls313, while installations made before that date still run the ls311 build they originally pulled. Because build.json tracks the floating `lscr.io/linuxserver/radarr:*-latest` tags, a rebuild silently changes the image contents without changing the add-on version. The Supervisor decides whether an update exists purely by comparing the `version` string in config.yaml against the installed one -- it does not compare image digests -- so an unchanged string means the update is never offered and the new image is never pulled. Add the local patch counter documented in CLAUDE.md to make the rebuild visible to the Supervisor. Radarr itself is unchanged at 6.3.0.10514, so updater.json keeps upstream_version as-is; the updater bot only rewrites config.yaml when the upstream version moves, matching how lidarr (3.1.0.4875 -> 3.1.0.4875.1) and bazarr (1.6.0 -> 1.6.0.2) already work. The dotted `.1` form is required rather than `-1`: AwesomeVersion parses `6.3.0.10514-1` as an unknown strategy and raises on comparison, whereas `6.3.0.10514.1` compares as SimpleVer and sorts above `6.3.0.10514`. * chore(sonarr,prowlarr): update to latest upstream releases Sonarr 4.0.19.2997 -> 4.0.19.3001 (develop-4.0.19.3001-ls184, 2026-08-11) Prowlarr 2.6.2.5517.9 -> 2.6.2.5534.9 (nightly-2.6.2.5534-ls9, 2026-08-08) Both add-ons track a prerelease channel (github_beta), and their build.json files pin the floating `-develop` / `-nightly` LinuxServer.io tags, so the rebuild picks up the matching base image on merge. Unlike radarr, neither add-on was affected by the stale-image problem: the published images match the versions they claim (sonarr ships ls183 for 4.0.19.2997, prowlarr ships ls9 for 2.6.2.5517), so these are ordinary version bumps that the weekly updater bot would otherwise pick up. Sonarr also records the upstream version in ARG BUILD_UPSTREAM, updated here to match. Prowlarr has no BUILD_UPSTREAM line.
146 lines
4.5 KiB
Docker
146 lines
4.5 KiB
Docker
#============================#
|
|
# ALEXBELGIUM'S DOCKERFILE #
|
|
#============================#
|
|
# _.------.
|
|
# _.-` ('>.-`"""-.
|
|
# '.--'` _'` _ .--.)
|
|
# -' '-.-';` `
|
|
# ' - _.' ``'--.
|
|
# '---` .-'""`
|
|
# /`
|
|
#=== Home Assistant Addon ===#
|
|
|
|
#################
|
|
# 1 Build Image #
|
|
#################
|
|
|
|
ARG BUILD_FROM
|
|
ARG BUILD_VERSION
|
|
ARG BUILD_UPSTREAM="4.0.19.3001"
|
|
FROM ${BUILD_FROM}
|
|
|
|
##################
|
|
# 2 Modify Image #
|
|
##################
|
|
|
|
# Set S6 wait time
|
|
ENV S6_CMD_WAIT_FOR_SERVICES=1 \
|
|
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \
|
|
S6_SERVICES_GRACETIME=0
|
|
|
|
# Global LSIO modifications
|
|
COPY ha_lsio.sh /ha_lsio.sh
|
|
ARG CONFIGLOCATION="/config"
|
|
RUN chmod 744 /ha_lsio.sh && if grep -qr "lsio" /etc; then /ha_lsio.sh "$CONFIGLOCATION"; fi && rm /ha_lsio.sh
|
|
|
|
##################
|
|
# 3 Install apps #
|
|
##################
|
|
|
|
# Add rootfs
|
|
COPY rootfs/ /
|
|
RUN find . -type f \( -name "*.sh" -o -name "run" -o -name "finish" \) -print -exec chmod +x {} \;
|
|
|
|
# Uses /bin for compatibility purposes
|
|
# hadolint ignore=DL4005
|
|
RUN if [ ! -f /bin/sh ] && [ -f /usr/bin/sh ]; then ln -s /usr/bin/sh /bin/sh; fi && \
|
|
if [ ! -f /bin/bash ] && [ -f /usr/bin/bash ]; then ln -s /usr/bin/bash /bin/bash; fi
|
|
|
|
# Modules
|
|
ARG MODULES="00-banner.sh 01-custom_script.sh 90-disable_ingress.sh 00-local_mounts.sh 00-smb_mounts.sh 00-deprecated.sh"
|
|
|
|
# Automatic modules download
|
|
COPY ha_automodules.sh /ha_automodules.sh
|
|
RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh
|
|
|
|
# Manual apps
|
|
ENV PACKAGES="jq \
|
|
curl \
|
|
cifs-utils \
|
|
keyutils \
|
|
ffmpeg \
|
|
nginx"
|
|
|
|
# Automatic apps & bashio
|
|
COPY ha_autoapps.sh /ha_autoapps.sh
|
|
RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.sh
|
|
|
|
################
|
|
# 4 Entrypoint #
|
|
################
|
|
|
|
# Add entrypoint
|
|
ENV S6_STAGE2_HOOK=/ha_entrypoint.sh
|
|
COPY ha_entrypoint.sh /ha_entrypoint.sh
|
|
RUN chmod 777 /ha_entrypoint.sh
|
|
|
|
# Install bashio
|
|
COPY bashio-standalone.sh /usr/local/lib/bashio-standalone.sh
|
|
RUN chmod 0755 /usr/local/lib/bashio-standalone.sh
|
|
|
|
#
|
|
#WORKDIR /
|
|
#ENTRYPOINT [ "/usr/bin/env" ]
|
|
#CMD [ "/ha_entrypoint.sh" ]
|
|
#SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
############
|
|
# 5 Labels #
|
|
############
|
|
|
|
ARG BUILD_ARCH
|
|
ARG BUILD_DATE
|
|
ARG BUILD_DESCRIPTION
|
|
ARG BUILD_NAME
|
|
ARG BUILD_REF
|
|
ARG BUILD_REPOSITORY
|
|
ARG BUILD_VERSION
|
|
ENV BUILD_VERSION="${BUILD_VERSION}"
|
|
LABEL \
|
|
io.hass.name="${BUILD_NAME}" \
|
|
io.hass.description="${BUILD_DESCRIPTION}" \
|
|
io.hass.arch="${BUILD_ARCH}" \
|
|
io.hass.type="addon" \
|
|
io.hass.version=${BUILD_VERSION} \
|
|
maintainer="alexbelgium (https://github.com/alexbelgium)" \
|
|
org.opencontainers.image.title="${BUILD_NAME}" \
|
|
org.opencontainers.image.description="${BUILD_DESCRIPTION}" \
|
|
org.opencontainers.image.vendor="Home Assistant Add-ons" \
|
|
org.opencontainers.image.authors="alexbelgium (https://github.com/alexbelgium)" \
|
|
org.opencontainers.image.licenses="MIT" \
|
|
org.opencontainers.image.url="https://github.com/alexbelgium" \
|
|
org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \
|
|
org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \
|
|
org.opencontainers.image.created=${BUILD_DATE} \
|
|
org.opencontainers.image.revision=${BUILD_REF} \
|
|
org.opencontainers.image.version=${BUILD_VERSION}
|
|
|
|
#################
|
|
# 6 Healthcheck #
|
|
#################
|
|
|
|
# Avoid spamming logs
|
|
# hadolint ignore=SC2016
|
|
RUN \
|
|
# Handle Apache configuration
|
|
if [ -d /etc/apache2/sites-available ]; then \
|
|
for file in /etc/apache2/sites-*/*.conf; do \
|
|
sed -i '/<VirtualHost/a \ \n # Match requests with the custom User-Agent "HealthCheck" \n SetEnvIf User-Agent "HealthCheck" dontlog \n # Exclude matching requests from access logs \n CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog' "$file"; \
|
|
done; \
|
|
fi && \
|
|
\
|
|
# Handle Nginx configuration
|
|
if [ -f /etc/nginx/nginx.conf ]; then \
|
|
awk '/http \{/{print; print "map $http_user_agent $dontlog {\n default 0;\n \"~*HealthCheck\" 1;\n}\naccess_log /var/log/nginx/access.log combined if=$dontlog;"; next}1' /etc/nginx/nginx.conf > /etc/nginx/nginx.conf.new && \
|
|
mv /etc/nginx/nginx.conf.new /etc/nginx/nginx.conf; \
|
|
fi
|
|
|
|
ENV HEALTH_PORT="8989" \
|
|
HEALTH_URL=""
|
|
HEALTHCHECK \
|
|
--interval=5s \
|
|
--retries=5 \
|
|
--start-period=30s \
|
|
--timeout=25s \
|
|
CMD curl -A "HealthCheck: Docker/1.0" -s -f "http://127.0.0.1:${HEALTH_PORT}${HEALTH_URL}" &>/dev/null || exit 1
|