Files
Anthias/docker/Dockerfile.viewer
2022-09-22 15:46:07 +01:00

159 lines
4.6 KiB
Docker

FROM balenalib/raspberrypi3:buster
# This list needs to be trimmed back later
RUN apt-get update && \
apt-get -y install --no-install-recommends \
build-essential \
ca-certificates \
git-core \
libasound2-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libbz2-dev \
libcec-dev \
libdbus-1-dev \
libdbus-glib-1-dev \
libdrm-dev \
libegl1-mesa-dev \
libevent-dev \
libffi-dev \
libfontconfig1-dev \
libfreetype6-dev \
libgbm-dev \
libgcrypt20-dev \
libgles2-mesa \
libgles2-mesa-dev \
libglib2.0-dev \
libgst-dev \
libicu-dev \
libinput-dev \
libiodbc2-dev \
libjpeg62-turbo-dev \
libjsoncpp-dev \
libminizip-dev \
libnss3 \
libnss3-dev \
libopus-dev \
libpci-dev \
libpng-dev \
libpng16-16 \
libpq-dev \
libpulse-dev \
libraspberrypi0 \
librsvg2-common \
libsdl2-dev \
libsnappy-dev \
libsqlite0-dev \
libsqlite3-dev \
libsrtp0-dev \
libsrtp2-dev \
libssl-dev \
libssl1.1 \
libswscale-dev \
libsystemd-dev \
libts-dev \
libudev-dev \
libvpx-dev \
libwebp-dev \
libx11-dev \
libx11-xcb-dev \
libx11-xcb1 \
libxcb-glx0-dev \
libxcb-icccm4 \
libxcb-icccm4-dev \
libxcb-image0 \
libxcb-image0-dev \
libxcb-keysyms1 \
libxcb-keysyms1-dev \
libxcb-randr0-dev \
libxcb-render-util0 \
libxcb-render-util0-dev \
libxcb-shape0-dev \
libxcb-shm0 \
libxcb-shm0-dev \
libxcb-sync-dev \
libxcb-sync1 \
libxcb-xfixes0-dev \
libxcb-xinerama0 \
libxcb-xinerama0-dev \
libxcb1 \
libxcb1-dev \
libxext-dev \
libxi-dev \
libxkbcommon-dev \
libxrender-dev \
libxslt1-dev \
libxss-dev \
libxtst-dev \
net-tools \
omxplayer \
psmisc \
python-dev \
python-gobject \
python-netifaces \
python-pip \
python-setuptools \
vlc \
ttf-wqy-zenhei \
fonts-arphic-uming \
sqlite3 && \
apt-get clean
# Install Python requirements
COPY requirements/requirements.viewer.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -r /tmp/requirements.txt
# Works around issue with `curl`
# https://github.com/balena-io-library/base-images/issues/562
RUN c_rehash
# QT Base from packages does not support eglfs
ARG PI_VERSION=pi3
ARG DEBIAN_VERSION=buster
ARG QT_VERSION=5.15.2
ARG WEBVIEW_GIT_HASH=0b6d49359133246659b9ba1d8dd883e3fc5c9a91
ARG BASE_URL="https://github.com/Screenly/screenly-ose/releases/download/WebView-v0.2.1"
RUN curl "$BASE_URL/qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz" \
-sL -o "/tmp/qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz" && \
curl "$BASE_URL/qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz.sha256" \
-sL -o "/tmp/qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz.sha256" && \
cd /tmp && \
sha256sum -c "qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz.sha256" && \
tar -xzf "/tmp/qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz" -C /usr/local && \
rm "qt5-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION.tar.gz"
RUN curl "$BASE_URL/webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz" \
-sL -o "/tmp/webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz" && \
curl "$BASE_URL/webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz.sha256" \
-sL -o "/tmp/webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz.sha256" && \
cd /tmp && \
sha256sum -c "webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz.sha256" && \
tar -xzf "/tmp/webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz" -C /usr/local && \
rm "webview-$QT_VERSION-$DEBIAN_VERSION-$PI_VERSION-$WEBVIEW_GIT_HASH.tar.gz"
ENV QT_QPA_EGLFS_FORCE888=1
ENV QT_QPA_PLATFORM=linuxfb
# Turn on debug logging for now
#ENV QT_LOGGING_RULES=qt.qpa.*=true
ENV QT_LOGGING_RULES=*.debug=true
ENV QT_QPA_DEBUG=1
ARG GIT_HASH
ENV GIT_HASH=$GIT_HASH
ARG GIT_SHORT_HASH
ENV GIT_SHORT_HASH=$GIT_SHORT_HASH
ARG GIT_BRANCH
ENV GIT_BRANCH=$GIT_BRANCH
RUN useradd -g video viewer
RUN rm -f /etc/localtime
WORKDIR /usr/src/app
RUN mkdir -p /usr/src/app
COPY . /usr/src/app/
CMD ["bash", "./bin/start_viewer.sh"]