Files
rme-jenkins/Dockerfile-ubuntu26.04.dockerfile
2026-08-18 21:17:51 +02:00

88 lines
2.3 KiB
Docker

FROM ubuntu:24.04
LABEL maintainer="legatus-team"
LABEL description="Ubuntu 24.04 build environment for Legatus LTS DEB builds"
# Prevent interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Berlin
# Install base build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
ninja-build \
git \
curl \
wget \
python3 \
python3-pip \
python3-setuptools \
libgl1-mesa-dev \
libglu1-mesa-dev \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-xfixes0 \
libxcb-xinerama0 \
libxcb-xkb1 \
libxkbcommon-x11-0 \
libdbus-1-3 \
libfontconfig1 \
libfreetype6 \
libharfbuzz0b \
ca-certificates \
gnupg \
lsb-release \
software-properties-common \
pkg-config \
libudev-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Qt6 from host mount or pre-installed location
# Qt6 is NOT installed in this image due to licensing/download requirements
# Mount Qt6 installation at runtime:
# docker run -v /opt/Qt:/opt/Qt -e CMAKE_PREFIX_PATH=/opt/Qt/6.8.2/gcc_64/lib/cmake ...
# See README-ubuntu-docker.md for installation options
# Install additional development libraries (common dependencies)
RUN apt-get update && apt-get install -y --no-install-recommends \
libboost-all-dev \
libjson-glib-dev \
libgeographic-dev \
libpq-dev \
libssl-dev \
libcurl4-openssl-dev \
libxml2-dev \
libxslt1-dev \
zlib1g-dev \
libbz2-dev \
liblzma-dev \
libzstd-dev \
&& rm -rf /var/lib/apt/lists/*
# Install clang-tidy and LLVM tools for code quality checks
RUN apt-get update && apt-get install -y --no-install-recommends \
clang-tidy \
clang-format \
clang-tools \
llvm \
&& rm -rf /var/lib/apt/lists/*
# Set up rpmbuild directory structure (for compatibility with existing scripts)
RUN mkdir -p /home/builder/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} && \
echo "%_topdir /home/builder/rpmbuild" > /home/builder/.rpmmacros
# Create non-root builder user
RUN useradd -m -u 1000 builder && \
chown -R builder:builder /home/builder
# Set working directory
WORKDIR /workspace
# Default command
CMD ["/bin/bash"]