# Используем образ 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