mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
152 lines
5.0 KiB
Docker
152 lines
5.0 KiB
Docker
# metabuilder/base-apt
|
|
#
|
|
# Ubuntu 24.04 with every apt package used across all MetaBuilder Dockerfiles.
|
|
# Build once — all Ubuntu-based app images FROM this and skip apt entirely.
|
|
#
|
|
# Build: docker build -f Dockerfile.apt -t metabuilder/base-apt:latest ../../
|
|
# ~5 min cold, instant on cache hit.
|
|
|
|
FROM ubuntu:24.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive TZ=UTC
|
|
|
|
# Retry loop: handles 400/EOF errors from Ubuntu mirrors on flaky connections.
|
|
# Backoff: 10s → 20s → 30s → 40s between attempts.
|
|
RUN for i in 1 2 3 4 5; do \
|
|
apt-get update && apt-get install -y --no-install-recommends \
|
|
\
|
|
# ── Build toolchain ───────────────────────────────────────────────
|
|
build-essential \
|
|
cmake \
|
|
ninja-build \
|
|
ccache \
|
|
pkg-config \
|
|
gcc \
|
|
g++ \
|
|
clang-18 \
|
|
clang-tidy-18 \
|
|
clang-format-18 \
|
|
lldb-18 \
|
|
lld \
|
|
\
|
|
# ── Python ────────────────────────────────────────────────────────
|
|
python3 \
|
|
python3-pip \
|
|
python3-venv \
|
|
python3-dev \
|
|
python3-setuptools \
|
|
\
|
|
# ── Version control ───────────────────────────────────────────────
|
|
git \
|
|
git-lfs \
|
|
\
|
|
# ── Debugging ─────────────────────────────────────────────────────
|
|
gdb \
|
|
valgrind \
|
|
strace \
|
|
ltrace \
|
|
\
|
|
# ── Networking / download ─────────────────────────────────────────
|
|
curl \
|
|
wget \
|
|
ca-certificates \
|
|
netcat-openbsd \
|
|
\
|
|
# ── Core dev libraries ────────────────────────────────────────────
|
|
libssl-dev \
|
|
libffi-dev \
|
|
libsqlite3-dev \
|
|
libsqlite3-0 \
|
|
libpq-dev \
|
|
libpq5 \
|
|
libmysqlclient-dev \
|
|
libmysqlclient21 \
|
|
libc-ares-dev \
|
|
libc-ares2 \
|
|
libbrotli-dev \
|
|
libcurl4-openssl-dev \
|
|
libcurl4 \
|
|
uuid-dev \
|
|
zlib1g-dev \
|
|
libfmt-dev \
|
|
\
|
|
# ── Graphics / display (game engine, Qt6) ─────────────────────────
|
|
libegl-dev \
|
|
libegl1-mesa-dev \
|
|
libgl-dev \
|
|
libgl1-mesa-dev \
|
|
libwayland-dev \
|
|
libxcb-util-dev \
|
|
libxkbcommon-dev \
|
|
libxrandr-dev \
|
|
libx11-dev \
|
|
libx11-xcb-dev \
|
|
libudev-dev \
|
|
# Qt6 X11/xcb system requirements
|
|
libfontenc-dev \
|
|
libice-dev \
|
|
libsm-dev \
|
|
libxaw7-dev \
|
|
libxcomposite-dev \
|
|
libxcursor-dev \
|
|
libxdamage-dev \
|
|
libxfixes-dev \
|
|
libxi-dev \
|
|
libxinerama-dev \
|
|
libxkbfile-dev \
|
|
libxmu-dev \
|
|
libxmuu-dev \
|
|
libxpm-dev \
|
|
libxss-dev \
|
|
libxt-dev \
|
|
libxtst-dev \
|
|
libxv-dev \
|
|
libxxf86vm-dev \
|
|
libxcb-glx0-dev \
|
|
libxcb-render0-dev \
|
|
libxcb-render-util0-dev \
|
|
libxcb-xkb-dev \
|
|
libxcb-icccm4-dev \
|
|
libxcb-image0-dev \
|
|
libxcb-keysyms1-dev \
|
|
libxcb-randr0-dev \
|
|
libxcb-shape0-dev \
|
|
libxcb-sync-dev \
|
|
libxcb-xfixes0-dev \
|
|
libxcb-xinerama0-dev \
|
|
libxcb-dri3-dev \
|
|
libxcb-cursor-dev \
|
|
libxcb-present-dev \
|
|
libxcb-composite0-dev \
|
|
libxcb-ewmh-dev \
|
|
libxcb-res0-dev \
|
|
\
|
|
# ── Media processing (media_daemon) ───────────────────────────────
|
|
# texlive-xetex + texlive-fonts-recommended are 60MB+ — kept in
|
|
# media_daemon/Dockerfile only (not the base) to keep this image lean.
|
|
ffmpeg \
|
|
imagemagick \
|
|
pandoc \
|
|
fonts-liberation \
|
|
tini \
|
|
\
|
|
# ── Java (for Android/Gradle builds) ──────────────────────────────
|
|
openjdk-17-jdk-headless \
|
|
\
|
|
# ── Shell utilities ───────────────────────────────────────────────
|
|
vim \
|
|
nano \
|
|
less \
|
|
tree \
|
|
htop \
|
|
unzip \
|
|
zip \
|
|
jq \
|
|
&& break \
|
|
|| (echo "apt-get failed (attempt $i/5), retrying in $((i*10))s..." && sleep $((i*10))); \
|
|
done \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
LABEL org.metabuilder.image="base-apt" \
|
|
org.metabuilder.description="All apt packages for MetaBuilder builds"
|