79 lines
3.3 KiB
Docker
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"
|