This commit is contained in:
2026-07-02 19:20:41 +01:00
parent c1da3abe7d
commit a577296608
13 changed files with 476 additions and 66 deletions
+58
View File
@@ -0,0 +1,58 @@
FROM --platform=linux/amd64 rust:1-bookworm AS builder
RUN dpkg --add-architecture arm64 \
&& apt-get update && apt-get install -y \
gcc-aarch64-linux-gnu \
libopus-dev:arm64 \
libsqlite3-dev:arm64 \
libc6:arm64 \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN rustup target add aarch64-unknown-linux-gnu
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
PKG_CONFIG_ALLOW_CROSS=1 \
PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig \
RUSTFLAGS=""
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY crates/server/Cargo.toml crates/server/Cargo.toml
COPY crates/entity/Cargo.toml crates/entity/Cargo.toml
COPY crates/migration/Cargo.toml crates/migration/Cargo.toml
RUN mkdir -p crates/server/src crates/entity/src crates/migration/src \
&& echo "fn main() {}" > crates/server/src/main.rs \
&& echo "" > crates/entity/src/lib.rs \
&& echo "" > crates/migration/src/lib.rs
RUN cargo build --release --target aarch64-unknown-linux-gnu --bin rtmp-to-whip
COPY crates crates
RUN touch crates/server/src/main.rs crates/entity/src/lib.rs crates/migration/src/lib.rs \
&& cargo build --release --target aarch64-unknown-linux-gnu --bin rtmp-to-whip \
&& aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/rtmp-to-whip
RUN mkdir /deps \
&& find /usr/lib/aarch64-linux-gnu -name 'libopus.so*' -exec cp --parents {} /deps \; \
&& find /usr/lib/aarch64-linux-gnu -name 'libsqlite3.so*' -exec cp --parents {} /deps \; \
&& find /lib/aarch64-linux-gnu -name 'libc*' -exec cp --parents {} /deps \; \
&& find /lib/aarch64-linux-gnu -name 'libm*' -exec cp --parents {} /deps \; \
&& find /lib/aarch64-linux-gnu -name 'libpthread*' -exec cp --parents {} /deps \; \
&& find /lib/aarch64-linux-gnu -name 'libdl*' -exec cp --parents {} /deps \; \
&& find /lib/aarch64-linux-gnu -name 'libgcc_s*' -exec cp --parents {} /deps \; \
&& cp --parents /lib/ld-linux-aarch64.so.1 /deps
FROM --platform=linux/arm64/v8 scratch
COPY --from=builder /deps /
COPY --from=builder /etc/ssl/certs /etc/ssl/certs
COPY --from=builder /app/target/aarch64-unknown-linux-gnu/release/rtmp-to-whip /rtmp-to-whip
EXPOSE 1935
EXPOSE 3000
EXPOSE 6969/udp
CMD ["/rtmp-to-whip"]