Files
tavro-build-linux/Dockerfile
aleksandr.vodyanov 7dbcfa5c15 [DO-538] tavro linux tests (#1)
Reviewed-on: https://git.avroid.tech/Docker/tavro-build-linux/pulls/1
Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.tech>
Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
Co-committed-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
2024-05-28 11:25:33 +03:00

79 lines
2.3 KiB
Docker

ARG DOCKER_REGISTRY=harbor.avroid.tech
# https://hub.docker.com/_/ubuntu
FROM ${DOCKER_REGISTRY}/all/base-build-image:1.4
LABEL description="Linux image for Tavro build" \
tools.qt.version="5.6.3"
###QT BUILD###
ARG NEXUS_URL="https://nexus.avroid.tech"
ARG NEXUS_QT_REPO="qt_repo" \
VERSION=5.6.3
COPY * /patches/
# Install packages for qt and dependencies
RUN apt update && \
apt install -y \
gperf \
libasound2-dev \
libavcodec-dev \
libavformat-dev \
libegl1-mesa-dev \
libgbm-dev \
libgles2-mesa-dev \
libglib2.0-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libharfbuzz-dev \
libjpeg8-dev \
libopus-dev \
libopenh264-dev \
libpipewire-0.3-dev \
libpulse-dev \
libswscale-dev \
libssl-dev \
libvpx-dev \
libfontconfig1-dev \
libfreetype6-dev \
libx11-dev \
libx11-xcb-dev \
'^libxcb*' \
libxcomposite-dev \
libxdamage-dev \
libxext-dev \
libxfixes-dev \
libxi-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
libxrender-dev \
libxtst-dev \
perl \
yasm && \
apt clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
#download, configure and build qt
RUN wget ${NEXUS_URL}/repository/${NEXUS_QT_REPO}/v${VERSION}/qt-everywhere-opensource-src-${VERSION}.tar.xz && tar -xJf qt-everywhere-opensource-src-${VERSION}.tar.xz && \
ln -sf /usr/bin/python3 /usr/bin/python && \
cd qt-everywhere* && for file in /patches/*.patch; do patch -p1 < /patches/0001_fixed_build_with_libxi.patch; done && \
./configure -release -opensource -confirm-license -nomake tests -nomake examples -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtdoc -skip qtmacextras -skip qtscript -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtserialbus -system-xcb -system-harfbuzz -system-libjpeg -no-openssl && \
make -j$(nproc) && make install -j$(nproc) && cd .. && rm -rf qt-everywhere* patches
# Personalization
#-------------------------------------------------------------------------------
#
ARG UID=1000
ARG GID=1000
ARG USER=jenkins
ARG USER_GROUP=jenkins
ARG USER_HOME=/home/${USER}
RUN (groupadd -g ${GID} ${USER_GROUP} || true) && \
useradd -d ${USER_HOME} -g ${GID} -u ${UID} --shell /bin/bash ${USER}
USER ${USER}
WORKDIR ${USER_HOME}
CMD ["/bin/bash"]