File Dockerfile of Package server-image

# SPDX-License-Identifier: MIT
#!BuildTag: uyuni/server:2025.04 uyuni/server:2025.04.%RELEASE% uyuni/server:latest

ARG INIT_IMAGE=uyuni/init:latest
FROM $INIT_IMAGE

ARG PRODUCT_PATTERN_PREFIX="patterns-uyuni"

# Extra packages can be added via project configuration
ARG EXTRAPACKAGES

ADD --chown=root:root root.tar.gz /

# Main packages
RUN echo "rpm.install.excludedocs = yes" >>/etc/zypp/zypp.conf && \
    zypper ref && zypper --non-interactive up && \
    zypper --gpg-auto-import-keys --non-interactive install --auto-agree-with-licenses --force-resolution \
        ${EXTRAPACKAGES} \
        ${PRODUCT_PATTERN_PREFIX}_server \
        ${PRODUCT_PATTERN_PREFIX}_retail \
        spacewalk-backend-sql-postgresql \
        spacewalk-java-postgresql \
        postgresql16 \
        billing-data-service \
        grub2-x86_64-efi \
        grub2-arm64-efi \
        grub2-powerpc-ieee1275 \
        ed \
        susemanager-tftpsync \
        golang-github-prometheus-node_exporter \
        prometheus-postgres_exporter \
        golang-github-QubitProducts-exporter_exporter \
        prometheus-jmx_exporter \
        prometheus-jmx_exporter-tomcat \
        spacecmd \
        grafana-formula \
        locale-formula \
        prometheus-exporters-formula \
        prometheus-formula \
        registry-formula \
        virtualization-formulas \
        uyuni-config-formula \
        saphanabootstrap-formula \
        sapnwbootstrap-formula \
        drbd-formula \
        habootstrap-formula \
        saline-formula \
        salt-shaptools \
        inter-server-sync \
        golang-github-prometheus-node_exporter \
        prometheus-postgres_exporter \
        golang-github-QubitProducts-exporter_exporter \
        prometheus-jmx_exporter \
        spacecmd \
        javamail \
        virtual-host-gatherer-libcloud \
        virtual-host-gatherer-Libvirt \
        virtual-host-gatherer-Nutanix \
        virtual-host-gatherer-VMware \
        vim \
        python3-pygit2 \
        ipmitool \
        sssd \
        sssd-dbus \
        sssd-ldap \
        sssd-ad \
        sssd-ipa \
        sssd-krb5 \
        sssd-tools && \
    systemctl enable prometheus-node_exporter && \
    systemctl enable sssd

# Initialize environments to sync configuration and package files to persistent volumes
RUN systemctl enable timezone_alignment && \
    uyuni-configfiles-sync init /etc/apache2/ && \
    uyuni-configfiles-sync init /etc/cobbler/ && \
    uyuni-configfiles-sync init /etc/postfix/ && \
    uyuni-configfiles-sync init /etc/rhn/ && \
    uyuni-configfiles-sync init /etc/salt/ && \
    uyuni-configfiles-sync init /etc/sysconfig/ && \
    uyuni-configfiles-sync init /etc/tomcat/ && \
    uyuni-configfiles-sync init /srv/tftpboot/ && \
    uyuni-configfiles-sync init /srv/www/ && \
    uyuni-configfiles-sync init /var/lib/cobbler/

# LABELs
ARG PRODUCT=Uyuni
ARG VENDOR="Uyuni project"
ARG URL="https://www.uyuni-project.org/"
ARG REFERENCE_PREFIX="registry.opensuse.org/uyuni"
ARG PRODUCT_VERSION="2025.04"

# Build Service required labels
# labelprefix=org.opensuse.uyuni.server
LABEL org.opencontainers.image.name=server-image
LABEL org.opencontainers.image.title="${PRODUCT} server container"
LABEL org.opencontainers.image.description="All-in-one ${PRODUCT} server image"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="${VENDOR}"
LABEL org.opencontainers.image.url="${URL}"
LABEL org.opencontainers.image.version=5.1.5
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL org.opensuse.reference="${REFERENCE_PREFIX}/server:${PRODUCT_VERSION}.%RELEASE%"
# endlabelprefix
LABEL org.uyuni.version="${PRODUCT_VERSION}"

CMD ["/usr/lib/systemd/systemd"]
HEALTHCHECK --interval=60s --timeout=120s --retries=5 --start-period=300s CMD ["/usr/bin/healthcheck.sh"]
openSUSE Build Service is sponsored by