2026-08-22 15:03:48 +08:00
|
|
|
# Используем образ 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
|
|
|
|
|
|
2026-08-22 15:04:48 +08:00
|
|
|
#Импортируем сертификаты в Java keystore (для работы Maven c HTTPS)
|
2026-08-22 15:03:48 +08:00
|
|
|
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
|