mirror of
https://github.com/TheBinaryNinja/tvapp2.git
synced 2026-06-04 07:25:41 -04:00
128 lines
3.8 KiB
Docker
128 lines
3.8 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# #
|
|
# @project TVApp2
|
|
# @usage docker image which allows you to download a m3u playlist and EPG guide data from
|
|
# multiple IPTV services.
|
|
# @file Dockerfile
|
|
# @repo https://github.com/TheBinaryNinja/tvapp2
|
|
# https://git.binaryninja.net/BinaryNinja/tvapp2
|
|
# https://github.com/aetherinox/docker-base-alpine
|
|
#
|
|
# you can build your own image by running
|
|
# amd64 docker build --build-arg VERSION=1.0.0 --build-arg BUILDDATE=20250218 -t tvapp2:latest -t tvapp2:1.0.0 -t tvapp2:1.0.0-amd64 -f Dockerfile .
|
|
# arm64 docker build --build-arg VERSION=1.0.0 --build-arg BUILDDATE=20250218 -t tvapp2:1.0.0-arm64 -f Dockerfile.aarch64 .
|
|
#
|
|
# if you prefer to use `docker buildx`
|
|
# create docker buildx create --driver docker-container --name container --bootstrap --use
|
|
# amd64 docker buildx build --no-cache --pull --build-arg VERSION=1.0.0 --build-arg BUILDDATE=20250218 -t tvapp2:latest -t tvapp2:1.0.0 --platform=linux/amd64 --output type=docker --output type=docker .
|
|
# arm64 docker buildx build --no-cache --pull --build-arg VERSION=1.0.0 --build-arg BUILDDATE=20250218 -t tvapp2:latest -t tvapp2:1.0.0 --platform=linux/arm64 --output type=docker --output type=docker .
|
|
# #
|
|
|
|
# #
|
|
# FROM
|
|
# any args defined before FROM cannot be called after FROM and the ARE is classified outside the build process.
|
|
# You will have to re-define the arg after FROM to utilize it anywhere else in the build process.
|
|
#
|
|
# @ref https://docs.docker.com/reference/dockerfile/#understand-how-arg-and-from-interact
|
|
# #
|
|
|
|
ARG ARCH=amd64
|
|
FROM --platform=linux/${ARCH} ghcr.io/aetherinox/alpine-base:3.21
|
|
|
|
# #
|
|
# Set Args
|
|
# #
|
|
|
|
ARG BUILDDATE
|
|
ARG VERSION
|
|
|
|
# #
|
|
# Set Labels
|
|
# #
|
|
|
|
LABEL org.opencontainers.image.authors="Aetherinox, iFlip721, Optx"
|
|
LABEL org.opencontainers.image.vendor="BinaryNinja"
|
|
LABEL org.opencontainers.image.title="TVApp2"
|
|
LABEL org.opencontainers.image.description="Automatic m3u and xml guide updater for TheTvApp, TVPass, and MoveOnJoy utilized within your IPTV client."
|
|
LABEL org.opencontainers.image.source="https://github.com/thebinaryninja/tvapp2"
|
|
LABEL org.opencontainers.image.repo.1="https://github.com/thebinaryninja/tvapp2"
|
|
LABEL org.opencontainers.image.repo.2="https://git.binaryninja.net/binaryninja/tvapp2"
|
|
LABEL org.opencontainers.image.repo.3="https://github.com/aetherinox/docker-base-alpine"
|
|
LABEL org.opencontainers.image.documentation="https://thebinaryninja.github.io/tvapp2"
|
|
LABEL org.opencontainers.image.url="https://github.com/thebinaryninja/tvapp2/pkgs/container/tvapp2"
|
|
LABEL org.opencontainers.image.licenses="MIT"
|
|
LABEL org.opencontainers.image.architecture="${ARCH}"
|
|
LABEL org.opencontainers.image.ref.name="main"
|
|
LABEL org.opencontainers.image.registry="local"
|
|
LABEL org.tvapp2.image.maintainers="Aetherinox, iFlip721, Optx"
|
|
LABEL org.tvapp2.image.build-version="Version:- ${VERSION} Date:- ${BUILDDATE}"
|
|
|
|
# #
|
|
# Set Env Var
|
|
# #
|
|
|
|
ENV DIR_BUILD=/usr/src/app
|
|
ENV DIR_RUN=/usr/bin/app
|
|
ENV NODE_VERSION=22.8.0
|
|
ENV YARN_VERSION=1.22.22
|
|
ENV URL_REPO="https://git.binaryninja.net/binaryninja/"
|
|
ENV WEB_IP="0.0.0.0"
|
|
ENV WEB_PORT=4124
|
|
ENV TZ="Etc/UTC"
|
|
|
|
# #
|
|
# Install
|
|
# #
|
|
|
|
RUN \
|
|
apk add --no-cache \
|
|
wget \
|
|
bash \
|
|
nano \
|
|
npm \
|
|
openssl
|
|
|
|
# #
|
|
# Copy docker-entrypoint
|
|
# #
|
|
|
|
COPY docker-entrypoint.sh /usr/local/bin/
|
|
|
|
# #
|
|
# copy s6-overlays root to image root
|
|
# #
|
|
|
|
COPY root/ /
|
|
|
|
# #
|
|
# set work directory
|
|
# #
|
|
|
|
WORKDIR ${DIR_BUILD}
|
|
|
|
# #
|
|
# copy tvapp2 project to workdir
|
|
# #
|
|
|
|
COPY tvapp2/ ./
|
|
|
|
# #
|
|
# set work dir to built app
|
|
# #
|
|
|
|
WORKDIR ${DIR_RUN}
|
|
|
|
# #
|
|
# Ports and volumes
|
|
# #
|
|
|
|
EXPOSE ${WEB_PORT}/tcp
|
|
|
|
# #
|
|
# In case user sets up the cron for a longer duration, do a first run
|
|
# and then keep the container running. Hacky, but whatever.
|
|
# #
|
|
|
|
ENTRYPOINT ["/init"]
|