Files
docker-oscam/Dockerfile

110 lines
2.9 KiB
Docker

# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
# set version label
ARG BUILD_DATE
ARG OSCAM_VERSION
RUN BUILD_DATE="$(date +"%Y-%m-%d %H:%M")"
LABEL build_version="Build-date:- ${BUILD_DATE}"
# copy patches
COPY patches/ /tmp/patches/
ENV \
MAKEFLAGS="-j20"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
build-base \
libdvbcsa-dev \
libusb-dev \
linux-headers \
openssl-dev \
pcsc-lite-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
ccid \
libdvbcsa \
libusb \
openssl \
pcsc-lite \
pcsc-lite-libs \
netcat-openbsd && \
echo "**** compile oscam ****" && \
if [ -z ${OSCAM_VERSION+x} ]; then \
OSCAM_VERSION=$(curl -s https://git.streamboard.tv/api/v4/projects/11/repository/tags | jq -r '.[0].name'); \
fi && \
mkdir -p /tmp/oscam && \
curl -o \
/tmp/oscam.tar.gz -L \
"https://git.streamboard.tv/common/oscam/-/archive/${OSCAM_VERSION}/oscam-${OSCAM_VERSION}.tar.gz" && \
tar xf \
/tmp/oscam.tar.gz -C \
/tmp/oscam --strip-components=1 && \
cd /tmp/oscam && \
patch -p1 < /tmp/patches/cccam.patch && \
./config.sh \
--enable all \
--disable \
CARDREADER_DB2COM \
CARDREADER_INTERNAL \
CARDREADER_STINGER \
CARDREADER_STAPI \
CARDREADER_STAPI5 \
IPV6SUPPORT \
LCDSUPPORT \
LEDSUPPORT \
READ_SDT_CHARSETS && \
make \
CONF_DIR=/config \
DEFAULT_PCSC_FLAGS="-I/usr/include/PCSC" \
NO_PLUS_TARGET=1 \
OSCAM_BIN=/usr/bin/oscam \
pcsc-libusb && \
echo "**** fix broken permissions from pcscd install ****" && \
chown root:root \
/usr/sbin/pcscd && \
chmod 755 \
/usr/sbin/pcscd && \
echo "**** install PCSC drivers from Linuxserver S3 due to Cloudflare blocking curl download from source (original file at https://www3.hidglobal.com/sites/default/files/drivers/ifdokccid_linux_x86_64-v4.2.8.tar.gz) ****" && \
mkdir -p \
/tmp/omnikey && \
curl -o \
/tmp/omnikey.tar.gz -L \
"https://ci-tests.linuxserver.io/artifacts/ifdokccid_linux_x86_64-v4.2.8.tar.gz" && \
tar xzf \
/tmp/omnikey.tar.gz -C \
/tmp/omnikey --strip-components=2 && \
cd /tmp/omnikey && \
./install && \
echo "**** fix group for card readers and add abc to dialout group ****" && \
groupmod -g 24 cron && \
groupmod -g 16 dialout && \
usermod -a -G 16 abc && \
printf "Build-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# copy local files
COPY root/ /
# add CONNECTED_CONTAINERS
ENV CONNECTED_CONTAINERS_TIMEOUT=60
COPY scripts/connected-containers.sh /etc/cont-init.d/01-connected-containers
RUN chmod +x /etc/cont-init.d/01-connected-containers
# add custum library
COPY library/uname.so /usr/lib/uname.so
ENV LD_PRELOAD=/usr/lib/uname.so
# Ports and volumes
EXPOSE 8888
VOLUME /config