63 lines
1.5 KiB
Docker
63 lines
1.5 KiB
Docker
FROM ubuntu:24.04
|
|
|
|
# Avoid interactive prompts
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Build essentials + Rust build deps
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
pkg-config \
|
|
clang \
|
|
nasm \
|
|
curl \
|
|
git \
|
|
rsync \
|
|
wget \
|
|
file \
|
|
squashfs-tools \
|
|
# ALSA (cpal)
|
|
libasound2-dev \
|
|
# Wayland (winit/eframe)
|
|
libwayland-dev \
|
|
libwayland-cursor0 \
|
|
# X11 (winit/eframe)
|
|
libx11-dev \
|
|
libxkbcommon-dev \
|
|
libxcb-shape0-dev \
|
|
libxcb-xfixes0-dev \
|
|
# Clipboard (arboard)
|
|
libxdo-dev \
|
|
# GLib (rfd/muda/gio)
|
|
libglib2.0-dev \
|
|
libgtk-3-dev \
|
|
# Vulkan headers (wgpu)
|
|
libvulkan-dev \
|
|
# FFmpeg build-from-source deps (ffmpeg-sys-next build feature)
|
|
yasm \
|
|
libx264-dev \
|
|
libx265-dev \
|
|
libvpx-dev \
|
|
libmp3lame-dev \
|
|
libopus-dev \
|
|
# PulseAudio (cpal optional backend)
|
|
libpulse-dev \
|
|
# Packaging tools
|
|
dpkg \
|
|
rpm \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Rust
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
# Install cargo packaging tools
|
|
RUN cargo install cargo-deb cargo-generate-rpm
|
|
|
|
# Download AppImage runtime for building AppImages
|
|
RUN wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-x86_64" \
|
|
-O /opt/appimage-runtime && \
|
|
chmod +x /opt/appimage-runtime && \
|
|
echo "Runtime size: $(wc -c < /opt/appimage-runtime) bytes"
|
|
|
|
WORKDIR /build
|