Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
m1k1o
GitHub Repository: m1k1o/neko
Path: blob/master/apps/opera/Dockerfile
1300 views
ARG BASE_IMAGE=ghcr.io/m1k1o/neko/base:latest
FROM $BASE_IMAGE

ARG API_URL="https://download5.operacdn.com/pub/opera/desktop/"

COPY fix-ffmpeg-widevine.sh /tmp/fix-ffmpeg-widevine.sh

#
# install opera
RUN set -eux; apt-get update; \
    #
    # fetch latest available release with linux package
    VERSIONS="$(wget -O - "${API_URL}" 2>/dev/null | sed -n 's/.*href="\([^"/]*\).*/\1/p' | sort --version-sort -r | head -n 10)"; \
    VERSION=""; \
    for v in $VERSIONS; do \
        if wget --spider "${API_URL}${v}/linux/opera-stable_${v}_amd64.deb" 2>/dev/null; then \
            VERSION="$v"; \
            break; \
        fi; \
    done; \
    if [ -z "$VERSION" ]; then \
        echo "No Opera version with Linux package found"; \
        exit 1; \
    fi; \
    echo "Using Opera version: $VERSION"; \
    wget -O /tmp/opera.deb "${API_URL}${VERSION}/linux/opera-stable_${VERSION}_amd64.deb"; \
    apt-get install -y --no-install-recommends openbox curl jq unzip /tmp/opera.deb; \
    /tmp/fix-ffmpeg-widevine.sh; \
    rm -f /tmp/opera.deb /tmp/fix-ffmpeg-widevine.sh; \
    #
    # clean up
    apt-get --purge autoremove -y curl jq unzip; \
    apt-get clean -y; \
    rm -rf /var/lib/apt/lists/* /var/cache/apt/*

#
# copy configuation files
COPY supervisord.conf /etc/neko/supervisord/opera.conf
COPY openbox.xml /etc/neko/openbox.xml