Live video on the AT Protocol
at eli/sync-changes 90 lines 4.0 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 13ADD docker/sources.list /etc/apt/sources.list 14ADD docker/winehq.key /etc/apt/keyrings/winehq-archive.key 15RUN dpkg --add-architecture i386 && dpkg --add-architecture arm64 16 17# Haven't automated it yet, so here's my instructors for mirroring winehq: 18# /etc/apt/mirror.list: 19# deb-i386 https://dl.winehq.org/wine-builds/ubuntu jammy main 20# deb-all https://dl.winehq.org/wine-builds/ubuntu jammy main 21# deb-amd64 [arch=amd64,i386 signed-by=/etc/apt/keyrings/winehq-archive.key] https://dl.winehq.org/wine-builds/ubuntu jammy main 22# 23# go install github.com/minio/mc@latest 24# mc alias set streamplace-crap https://storage.googleapis.com/ ACCESS_KEY SECRET_KEY 25# apt-mirror 26# mc mirror --overwrite /var/spool/apt-mirror/mirror/dl.winehq.org/ streamplace-crap/streamplace-crap/dl.winehq.org/ 27 28RUN apt update \ 29 && apt install -y build-essential curl git openjdk-17-jdk unzip jq g++ python3-pip ninja-build \ 30 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu clang lld qemu-user-static pkg-config \ 31 nasm gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools zip bison flex expect \ 32 mono-runtime nuget mono-xsp4 squashfs-tools \ 33 libc6:arm64 libstdc++6:arm64 \ 34 && pip install meson tomli \ 35 && curl -L --fail https://go.dev/dl/go$GO_VERSION.linux-$TARGETARCH.tar.gz -o go.tar.gz \ 36 && tar -C /usr/local -xf go.tar.gz \ 37 && rm go.tar.gz 38 39RUN echo 'deb [arch=amd64,i386 signed-by=/etc/apt/keyrings/winehq-archive.key] https://storage.googleapis.com/streamplace-crap/dl.winehq.org/wine-builds/ubuntu/ jammy main' >> /etc/apt/sources.list \ 40 && apt update \ 41 && apt install -y --install-recommends winehq-stable 42 43ENV PATH $PATH:/usr/local/go/bin:/root/go/bin:/root/.cargo/bin 44 45RUN export NODEARCH="$TARGETARCH" \ 46 && if [ "$TARGETARCH" = "amd64" ]; then export NODEARCH="x64"; fi \ 47 && curl -L --fail https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$NODEARCH.tar.xz -o node.tar.gz \ 48 && tar -xf node.tar.gz \ 49 && cp -r node-v$NODE_VERSION-linux-$NODEARCH/* /usr/local \ 50 && rm -rf node.tar.gz node-v$NODE_VERSION-linux-$NODEARCH 51 52RUN npm install -g corepack@latest 53 54ARG ANDROID_SDK_VERSION=11076708 55ENV ANDROID_HOME /opt/android-sdk 56RUN mkdir -p ${ANDROID_HOME}/cmdline-tools && \ 57 curl -L -O https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && \ 58 unzip *tools*linux*.zip -d ${ANDROID_HOME}/cmdline-tools && \ 59 mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/tools && \ 60 rm *tools*linux*.zip && \ 61 curl -L https://raw.githubusercontent.com/thyrlian/AndroidSDK/bfcbf0cdfd6bb1ef45579e6ddc4d3876264cbdd1/android-sdk/license_accepter.sh | bash 62 63RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh \ 64 && bash rustup.sh -y \ 65 && rustup target add aarch64-unknown-linux-gnu \ 66 && rustup target add x86_64-unknown-linux-gnu \ 67 && rustup target add x86_64-pc-windows-gnu \ 68 && rustup target add x86_64-apple-darwin \ 69 && rustup target add aarch64-apple-darwin \ 70 && rm rustup.sh 71 72RUN go env -w GOTOOLCHAIN=go$GO_VERSION 73 74# FROM builder AS cached-builder 75# ARG CI_COMMIT_BRANCH=next 76# ENV CI_COMMIT_BRANCH $CI_COMMIT_BRANCH 77# WORKDIR /cached-build 78# RUN git clone https://git.stream.place/streamplace/streamplace \ 79# && cd streamplace \ 80# && make version install check app android -j$(nproc) \ 81# && make node \ 82# && cd .. \ 83# && rm -rf streamplace 84 85RUN curl -L https://github.com/golangci/golangci-lint/releases/download/v2.1.6/golangci-lint-2.1.6-linux-amd64.tar.gz -o golangci-lint.tar.gz \ 86 && tar -xf golangci-lint.tar.gz \ 87 && mv golangci-lint-2.1.6-linux-amd64/golangci-lint /usr/local/bin/ \ 88 && rm -rf golangci-lint.tar.gz golangci-lint-2.1.6-linux-amd64 89 90LABEL org.opencontainers.image.authors="support@stream.place"