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