overte/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-22.04

65 lines
3 KiB
Text

# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte
# Example build: docker build --no-cache -t overte/overte-full-build:0.1.7-ubuntu-22.04-amd64 -f Dockerfile_build_ubuntu-22.04 .
FROM ubuntu:22.04
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for full Overte builds"
# Use bash instead of sh
SHELL ["/bin/bash", "-c"]
# Don't use any frontend when installing packages during the creation of this container
ARG DEBIAN_FRONTEND=noninteractive
RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install CMake from Kitware
RUN apt-get update
RUN apt-get -y install ca-certificates gpg wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
RUN apt-get update
RUN rm /usr/share/keyrings/kitware-archive-keyring.gpg && apt-get -y install kitware-archive-keyring
RUN apt-get -y install cmake
# Install Conan
RUN if [ $(uname -m) = "x86_64" ]; then \
wget -O conan.deb https://github.com/conan-io/conan/releases/download/2.16.1/conan-2.16.1-amd64.deb ; \
elif [ $(uname -m) = "aarch64" ]; then \
wget -O conan.deb https://github.com/conan-io/conan/releases/download/2.16.1/conan-2.16.1-arm64.deb ; \
else \
echo "Unsupported architecture: $(uname -m)"; \
fi
RUN apt-get -y install ./conan.deb
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websockets5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev python3-packaging
# Install Overte tools build dependencies
RUN apt-get -y install libqt5webchannel5-dev qtwebengine5-dev libqt5xmlpatterns5-dev
# Install Overte Interface build dependencies
RUN apt-get -y install libqt5svg5-dev qttools5-dev vulkan-validationlayers libvulkan-dev libvulkan1 libqt5x11extras5-dev qtbase5-private-dev libxcb-glx0-dev libqt5multimedia5-plugins
# Install Interface runtime dependencies
RUN apt-get -y install qt5-image-formats-plugins
# Install server-console build dependencies
RUN apt-get -y install npm
# Install tools for package creation
RUN apt-get -y install sudo chrpath binutils dh-make
# Install locales package
RUN apt-get -y install locales
# Uncomment en_US.UTF-8 for inclusion in generation
RUN sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen
# Generate locale
RUN locale-gen
# Export env vars
RUN echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc
RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc
# Install tools needed for our Github Actions Workflow
RUN apt-get -y install python3-boto3 python3-github zip