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

71 lines
2.4 KiB
Docker
Raw Normal View History

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