1
0
mirror of synced 2025-12-13 11:22:16 +01:00
Files
hassio-addons/tvheadend/Dockerfile
2023-04-20 15:11:49 +02:00

200 lines
4.2 KiB
Docker

ARG BUILD_FROM
# hadolint ignore=DL3006
FROM ${BUILD_FROM} as buildstage
############## build stage ##############
# package versions
ARG TVHEADEND_COMMIT="52c3ed3e"
# environment settings
ARG TZ="Europe/Berlin"
ENV HOME="/config"
# copy patches
COPY patches/ /tmp/patches/
RUN apk add --no-cache musl=1.2.2-r9
RUN \
echo "**** install build packages ****" && \
apk add --no-cache \
libcrypto1.1 \
libssl1.1 \
autoconf \
automake \
bsd-compat-headers \
bzip2 \
cmake \
curl \
ffmpeg-dev \
file \
findutils \
g++ \
gcc \
gettext-dev \
git \
gnu-libiconv-dev \
gzip \
jq \
libcurl \
libdvbcsa-dev \
libgcrypt-dev \
libhdhomerun-dev \
libtool \
libva-dev \
libvpx-dev \
libxml2-dev \
libxslt-dev \
linux-headers \
make \
openssl-dev \
opus-dev \
patch \
pcre2-dev \
pkgconf \
pngquant \
python3 \
sdl-dev \
tar \
uriparser-dev \
wget \
x264-dev \
x265-dev \
zlib-dev \
xmltv \
coreutils
RUN \
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
rm -rf /usr/include/iconv.h && \
cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
RUN \
echo "**** compile tvheadend ****" && \
if [ -z ${TVHEADEND_COMMIT} ]; then \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
| jq -r '. | .sha'); \
fi && \
mkdir -p \
/tmp/tvheadend && \
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \
`#Encoding` \
--disable-ffmpeg_static \
--disable-libfdkaac_static \
--disable-libtheora_static \
--disable-libopus_static \
--disable-libvorbis_static \
--disable-libvpx_static \
--disable-libx264_static \
--disable-libx265_static \
--disable-libfdkaac \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
\
`#Options` \
--disable-avahi \
--disable-dbus_1 \
--disable-bintray_cache \
--disable-execinfo \
--disable-hdhomerun_static \
--enable-hdhomerun_client \
--enable-libav \
--enable-pngquant \
--enable-trace \
--enable-vaapi \
--infodir=/usr/share/info \
--localstatedir=/var \
--mandir=/usr/share/man \
--prefix=/usr \
--python=python3 \
--sysconfdir=/config && \
make -j 2 && \
make DESTDIR=/tmp/tvheadend-build install
############## runtime stage ##############
FROM ${BUILD_FROM}
# environment settings
ENV HOME="/config"
# libva-intel-driver \
# intel-media-driver \
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache \
bsd-compat-headers \
bzip2 \
curl \
ffmpeg \
ffmpeg-libs \
gnu-libiconv \
gzip \
libcrypto1.1 \
libcurl \
libdvbcsa \
libhdhomerun-libs \
libssl1.1 \
libva \
mesa-dri-ati \
libvpx \
libxml2 \
libxslt \
linux-headers \
openssl \
opus \
pcre2 \
py3-requests \
python3 \
tar \
uriparser \
wget \
x264 \
x265 \
zlib \
xmltv
# copy local files and buildstage artifacts
COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
#COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
# Copy root filesystem
COPY rootfs /
# ports and volumes
VOLUME /config
# 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} \
maintainer="Gautham Varma K <43441192+GauthamVarmaK@users.noreply.github.com>" \
org.opencontainers.image.title="${BUILD_NAME}" \
org.opencontainers.image.description="${BUILD_DESCRIPTION}" \
org.opencontainers.image.vendor="GauthamVarmaK" \
org.opencontainers.image.authors="Gautham Varma K <43441192+GauthamVarmaK@users.noreply.github.com>" \
org.opencontainers.image.licenses="MIT" \
org.opencontainers.image.url="https://github.com/GauthamVarmaK/addon-tvheadend" \
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}