Files
Dockerfiles/java/java-openjdk-maven/Dockerfile
T

71 lines
2.4 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Используем образ 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