Live video on the AT Protocol
at eli/rtmps 77 lines 3.5 kB view raw
1FROM ubuntu:22.04 AS builder 2 3ARG TARGETARCH 4ENV TARGETARCH $TARGETARCH 5 6ARG DOCKERFILE_HASH 7ENV DOCKERFILE_HASH $DOCKERFILE_HASH 8 9ENV GO_VERSION 1.24.2 10ENV NODE_VERSION 22.15.0 11ENV DEBIAN_FRONTEND noninteractive 12 13RUN apt update \ 14 && apt install -y build-essential curl git openjdk-17-jdk unzip jq g++ python3-pip ninja-build \ 15 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu clang lld qemu-user-static pkg-config \ 16 nasm gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools zip bison flex expect \ 17 mono-runtime nuget mono-xsp4 squashfs-tools \ 18 && pip install meson tomli \ 19 && curl -L --fail https://go.dev/dl/go$GO_VERSION.linux-$TARGETARCH.tar.gz -o go.tar.gz \ 20 && tar -C /usr/local -xf go.tar.gz \ 21 && rm go.tar.gz 22ENV PATH $PATH:/usr/local/go/bin:/root/go/bin:/root/.cargo/bin 23 24RUN dpkg --add-architecture i386 \ 25 && curl -L -o /etc/apt/sources.list.d/winehq-jammy.sources https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources \ 26 && curl -o /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key \ 27 && apt update && apt install -y --install-recommends winehq-stable 28 29RUN echo 'deb [arch=arm64] http://ports.ubuntu.com/ jammy main multiverse universe' >> /etc/apt/sources.list \ 30 && echo 'deb [arch=arm64] http://ports.ubuntu.com/ jammy-security main multiverse universe' >> /etc/apt/sources.list \ 31 && echo 'deb [arch=arm64] http://ports.ubuntu.com/ jammy-backports main multiverse universe' >> /etc/apt/sources.list \ 32 && echo 'deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates main multiverse universe' >> /etc/apt/sources.list \ 33 && dpkg --add-architecture arm64 \ 34 && bash -c "apt update || echo 'ignoring errors'" \ 35 && apt install -y libc6:arm64 libstdc++6:arm64 36 37RUN export NODEARCH="$TARGETARCH" \ 38 && if [ "$TARGETARCH" = "amd64" ]; then export NODEARCH="x64"; fi \ 39 && curl -L --fail https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$NODEARCH.tar.xz -o node.tar.gz \ 40 && tar -xf node.tar.gz \ 41 && cp -r node-v$NODE_VERSION-linux-$NODEARCH/* /usr/local \ 42 && rm -rf node.tar.gz node-v$NODE_VERSION-linux-$NODEARCH 43 44RUN npm install -g yarn 45 46ARG ANDROID_SDK_VERSION=11076708 47ENV ANDROID_HOME /opt/android-sdk 48RUN mkdir -p ${ANDROID_HOME}/cmdline-tools && \ 49 curl -L -O https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && \ 50 unzip *tools*linux*.zip -d ${ANDROID_HOME}/cmdline-tools && \ 51 mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/tools && \ 52 rm *tools*linux*.zip && \ 53 curl -L https://raw.githubusercontent.com/thyrlian/AndroidSDK/bfcbf0cdfd6bb1ef45579e6ddc4d3876264cbdd1/android-sdk/license_accepter.sh | bash 54 55RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh \ 56 && bash rustup.sh -y \ 57 && rustup target add aarch64-unknown-linux-gnu \ 58 && rustup target add x86_64-unknown-linux-gnu \ 59 && rustup target add x86_64-pc-windows-gnu \ 60 && rustup target add x86_64-apple-darwin \ 61 && rustup target add aarch64-apple-darwin \ 62 && rm rustup.sh 63 64RUN go env -w GOTOOLCHAIN=go$GO_VERSION 65 66FROM builder AS cached-builder 67ARG CI_COMMIT_BRANCH=next 68ENV CI_COMMIT_BRANCH $CI_COMMIT_BRANCH 69WORKDIR /cached-build 70RUN git clone https://git.stream.place/streamplace/streamplace \ 71 && cd streamplace \ 72 && make version install check app android -j$(nproc) \ 73 && make node \ 74 && cd .. \ 75 && rm -rf streamplace 76 77LABEL org.opencontainers.image.authors="support@stream.place"