builder-almalinux/Dockerfile

79 lines
3.3 KiB
Docker

# SPDX-FileCopyrightText: 2023 - 2024 Daniel Wolf <nephatrine@gmail.com>
#
# SPDX-License-Identifier: ISC
FROM almalinux:9
LABEL maintainer="Daniel Wolf <nephatrine@gmail.com>"
# hadolint ignore=DL3041
RUN echo 'install_weak_deps=False' >>/etc/dnf/dnf.conf \
&& dnf upgrade -y \
&& dnf -y install 'dnf-command(config-manager)' epel-release \
&& dnf -y config-manager --set-enabled crb \
&& dnf -y install --allowerasing curl-full \
&& dnf -y install \
bash bzip2 ca-certificates file gawk git git-lfs jq lsb_release make nodejs \
p7zip patch subversion unzip wget which xz zip \
&& dnf autoremove -y && dnf clean all \
&& rm -rf /tmp/* /var/tmp/*
# hadolint ignore=DL3041
RUN dnf -y install \
autoconf automake binutils bison clang clang-tools-extra cmake flex gcc-c++ \
glibc-devel libstdc++-devel libtool nasm ninja-build pkgconf rpmdevtools \
rpmlint texinfo \
&& dnf -y install \
libcurl-devel libicu-devel libxml2-devel libzstd-devel openssl-devel \
zlib-devel \
&& if [ "$(uname -m)" = "x86_64" ]; then dnf -y install \
glibc-devel.i686 libstdc++-devel.i686 libcurl-devel.i686 libicu-devel.i686 \
libxml2-devel.i686 libzstd-devel.i686 openssl-devel.i686 zlib-devel.i686; fi \
&& dnf autoremove -y && dnf clean all \
&& rpmdev-setuptree \
&& rm -rf /tmp/* /var/tmp/*
ENV PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin
# hadolint ignore=DL3013,DL3041
RUN dnf -y install pipx \
&& dnf autoremove -y && dnf clean all \
&& pipx install cmakelang \
&& pipx install reuse \
&& rm -rf /tmp/* /var/tmp/*
ENV CGO_ENABLED=1 CGO_CFLAGS="-D_LARGEFILE64_SOURCE" GOPATH=/go
# hadolint ignore=DL3041
RUN dnf -y install golang \
&& dnf autoremove -y && dnf clean all \
&& go install github.com/mdomke/git-semver/v6@latest \
&& rm -rf /tmp/* /var/tmp/*
ENV PATH ${GOPATH}/bin:$PATH
# hadolint ignore=DL3041
RUN dnf -y install \
ImageMagick doxygen-latex graphviz librsvg2-tools python3-jinja2 \
python3-pygments \
&& dnf autoremove -y && dnf clean all \
&& git -C "${HOME}" clone --single-branch --depth=1 https://github.com/mosra/m.css \
&& rm -rf "${HOME}"/m.css/documentation/test* \
&& mkdir /opt/m.css \
&& mv "${HOME}/m.css/documentation" /opt/m.css/bin && mv "${HOME}/m.css/COPYING" /opt/m.css/ \
&& mv "${HOME}/m.css/css" /opt/m.css/css && mv "${HOME}/m.css/plugins" /opt/m.css/plugins \
&& rm -rf /tmp/* /var/tmp/* "${HOME}/m.css"
ENV PATH=/opt/m.css/bin:$PATH
RUN if curl --output /dev/null --silent --fail -r 0-0 "https://code.nephatrine.net/api/packages/NephNET/rpm/repodata/repomd.xml"; then echo "Installing NephNET" \
&& rpm --import https://code.nephatrine.net/api/packages/NephNET/rpm/repository.key \
&& dnf config-manager --add-repo https://code.nephatrine.net/api/packages/NephNET/rpm.repo; fi \
&& rm -rf /tmp/* /var/tmp/*
COPY override /
# hadolint ignore=DL3003
RUN git -C "${HOME}" clone --single-branch --depth=1 https://code.nephatrine.net/nephatrine/hello-test.git \
&& mkdir "/tmp/build-$(uname -m)" && cd "/tmp/build-$(uname -m)" \
&& "nxbuild-linux-$(uname -m)" -GNinja "${HOME}/hello-test" \
&& ninja && ninja test \
&& if [ "$(uname -m)" = "x86_64" ]; then mkdir /tmp/build-i686 && cd /tmp/build-i686 \
&& nxbuild-linux-i686 -GNinja "${HOME}/hello-test" \
&& ninja && ninja test; fi \
&& cd .. && rm -rf /tmp/* /var/tmp/* "${HOME}/hello-test"