Home Assistant add-on that joins the instance to a Netmaker network via netclient. Distributed as a repository add-on using a prebuilt arm64 image (gitea.savant.io/homeassistant/netmaker) to avoid local buildx. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
64 lines
1.9 KiB
Docker
64 lines
1.9 KiB
Docker
ARG BUILD_FROM=ghcr.io/hassio-addons/base/amd64:10.1.1
|
|
# hadolint ignore=DL3006
|
|
FROM ${BUILD_FROM}
|
|
|
|
# Set shell
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
# Setup base
|
|
ARG BUILD_ARCH=amd64
|
|
ARG NETCLIENT_VERSION="v1.6.0"
|
|
# hadolint ignore=DL3018
|
|
RUN \
|
|
apk add --no-cache \
|
|
iproute2 \
|
|
iptables \
|
|
ip6tables \
|
|
nftables \
|
|
wireguard-tools \
|
|
openresolv \
|
|
coreutils \
|
|
\
|
|
&& ln -sf /sbin/xtables-nft-multi /sbin/ip6tables \
|
|
&& ln -sf /sbin/xtables-nft-multi /sbin/iptables \
|
|
\
|
|
&& if [ "${BUILD_ARCH}" = "aarch64" ]; then ARCH="arm64"; fi \
|
|
&& if [ "${BUILD_ARCH}" = "amd64" ]; then ARCH="amd64"; fi \
|
|
\
|
|
&& curl -L -s -o /opt/netclient \
|
|
"https://github.com/gravitl/netclient/releases/download/${NETCLIENT_VERSION}/netclient-linux-${ARCH}" \
|
|
&& chmod 0755 /opt/netclient \
|
|
&& ln -sf /opt/netclient /usr/bin/netclient
|
|
|
|
# Copy root filesystem
|
|
COPY rootfs /
|
|
|
|
HEALTHCHECK \
|
|
CMD healthcheck
|
|
|
|
# Build arguments
|
|
ARG BUILD_ARCH
|
|
ARG BUILD_DATE
|
|
ARG BUILD_DESCRIPTION
|
|
ARG BUILD_NAME
|
|
ARG BUILD_REF
|
|
ARG BUILD_REPOSITORY
|
|
ARG BUILD_VERSION
|
|
|
|
# Labels
|
|
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} \
|
|
org.opencontainers.image.title="${BUILD_NAME}" \
|
|
org.opencontainers.image.description="${BUILD_DESCRIPTION}" \
|
|
org.opencontainers.image.vendor="Home Assistant Community Apps" \
|
|
org.opencontainers.image.licenses="MIT" \
|
|
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}
|