Files
hassio-addons-old/kresus/Dockerfile
MrRaph_ ddeb64cef5 📦 chore(devcontainer.json): add devcontainer configuration file for development environment setup
📦 chore(setup.sh): add setup script to install pre-commit and configure it
📄 docs(README.md): update repository name and add description of custom Home Assistant addons
📄 docs(kresus/DOCS.md): add documentation for Kresus addon
🐳 feat(kresus): add Dockerfile and build.yaml for Kresus addon
🔧 chore(kresus): add configuration files for Kresus addon
🔧 chore(kresus): add apparmor profile for Kresus addon
🔧 chore(kresus): add changelog and docs for Kresus addon
🔧 chore(kresus): add icon and logo for Kresus addon
🔧 chore(kresus): add license file for Kresus addon
🔧 chore(kresus): add README and requirements file for Kresus addon
🔧 chore(kresus): add service scripts for Kresus addon
🔧 chore(kresus): add translations for Kresus addon
🔧 chore(repository.yaml): add repository information for MrRaph_'s custom Home Assistant addons
2024-03-06 11:20:07 +01:00

109 lines
3.1 KiB
Docker

ARG BUILD_FROM
FROM $BUILD_FROM
# Default ENV
ENV \
LANG="C.UTF-8" \
S6_BEHAVIOUR_IF_STAGE2_FAILS=2 \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \
S6_CMD_WAIT_FOR_SERVICES=1 \
S6_SERVICES_READYTIME=50
# Set shell
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
# Build Args
ARG \
BASHIO_VERSION \
TEMPIO_VERSION \
S6_OVERLAY_VERSION \
JEMALLOC_VERSION \
QEMU_CPU
# Base system
WORKDIR /usr/src
ARG BUILD_ARCH
RUN \
set -x \
&& apk add --no-cache \
bash \
bind-tools \
ca-certificates \
curl \
jq \
tzdata \
xz \
\
&& apk add --no-cache --virtual .build-deps \
build-base \
autoconf \
git \
\
&& if [ "${BUILD_ARCH}" = "armv7" ]; then \
export S6_ARCH="arm"; \
elif [ "${BUILD_ARCH}" = "i386" ]; then \
export S6_ARCH="i686"; \
elif [ "${BUILD_ARCH}" = "amd64" ]; then \
export S6_ARCH="x86_64"; \
else \
export S6_ARCH="${BUILD_ARCH}"; \
fi \
\
&& curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \
| tar Jxvf - -C / \
&& curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \
| tar Jxvf - -C / \
&& curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" \
| tar Jxvf - -C / \
&& curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \
| tar Jxvf - -C / \
&& mkdir -p /etc/fix-attrs.d \
&& mkdir -p /etc/services.d \
\
&& git clone "https://github.com/jemalloc/jemalloc" /usr/src/jemalloc \
&& cd /usr/src/jemalloc \
&& git checkout ${JEMALLOC_VERSION} \
&& ./autogen.sh \
&& make -j "$(nproc)" \
&& make install \
\
&& mkdir -p /usr/src/bashio \
&& curl -L -f -s "https://github.com/hassio-addons/bashio/archive/v${BASHIO_VERSION}.tar.gz" \
| tar -xzf - --strip 1 -C /usr/src/bashio \
&& mv /usr/src/bashio/lib /usr/lib/bashio \
&& ln -s /usr/lib/bashio/bashio /usr/bin/bashio \
\
&& curl -L -f -s -o /usr/bin/tempio \
"https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_${BUILD_ARCH}" \
&& chmod a+x /usr/bin/tempio \
\
&& apk del .build-deps \
&& rm -rf /usr/src/*
# S6-Overlay
WORKDIR /
ENTRYPOINT ["/init"]
# Copy root filesystem
COPY rootfs /
# Setup base
RUN apk add --no-cache \
gcc g++ gpgv jpeg-dev pwgen python3-dev py3-lxml py3-pip \
py3-wheel make nodejs npm zlib-dev && \
pip install -r /requirements.txt && \
npm install --omit=dev -g kresus@0.19.0 && \
addgroup kresus && \
adduser -G kresus -D -H kresus && \
mkdir -p /woob && \
chown kresus:kresus /woob && \
chown -R kresus:kresus /etc/kresus && \
chmod 0400 /etc/kresus/config.ini && \
chmod 0755 /etc/kresus
ENV KRESUS_DIR="/data/kresus"
ENV KRESUS_USER="kresus"
WORKDIR /