# Используем образ RedOS-ubi8 в качестве базового FROM docker.nexus01.rty.ru/registry.red-soft.ru/ubi8/ubi-minimal:8.0-250311 # Удаляем все репосзитории RUN rm -f /etc/yum.repos.d/* && dnf clean all # Копируем локального репозитория COPY distr/redos8-base-local.repo /etc/yum.repos.d/redos8-base-local.repo # Обновление кэша репозиториев RUN dnf makecache # Устанавливаем необходимые зависимости RUN dnf -y update && dnf -y upgrade \ && dnf -y install \ libicu \ curl \ unzip \ tar \ gzip \ ca-certificates \ easy-rsa \ openssl-libs \ krb5-libs \ shadow-utils \ && dnf clean all # Копируем архивы JDK и Maven из distr COPY distr/openjdk-21.0.2_linux-x64_bin.tar.gz /tmp/openjdk.tar.gz COPY distr/apache-maven-3.9.9-bin.zip /tmp/maven.zip # Копируем сертификаты gitlab/nexus COPY ./distr/certs/*pem /etc/pki/ca-trust/source/anchors/ # Обновление кэша репозиториев RUN update-ca-trust # Устанавливаем JDK 21 (распаковываем в /usr/lib/jvm) RUN mkdir -p /usr/lib/jvm && \ tar -xzf /tmp/openjdk.tar.gz -C /usr/lib/jvm && \ mv /usr/lib/jvm/jdk-21.0.2 /usr/lib/jvm/java-21-openjdk && \ rm /tmp/openjdk.tar.gz # Устанавливаем Maven (распаковываем в /opt) RUN unzip /tmp/maven.zip -d /opt && \ mv /opt/apache-maven-3.9.9 /opt/maven && \ rm /tmp/maven.zip #Импортируем сертификаты в Java keystore (для работы Maven с HTTPS) RUN for cert in /etc/pki/ca-trust/source/anchors/*.pem; do \ /usr/lib/jvm/java-21-openjdk/bin/keytool -import -noprompt \ -alias $(basename $cert .pem) \ -keystore /usr/lib/jvm/java-21-openjdk/lib/security/cacerts \ -storepass changeit -file $cert; \ done # Настраиваем перменные окружения ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk ENV MAVEN_HOME=/opt/maven ENV PATH="${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${PATH}" ENV KEYTOOL="${JAVA_HOME}/bin/keytool" ENV CACERTS="${JAVA_HOME}/lib/security/cacerts" # Рабочая директория для артефактов WORKDIR /app # Очистка временных файлов RUN dnf clean all && \ rm -rf /tmp/* && \ rm -rf /var/log/* && \ rm -rf /var/cache/dnf