Add java/java-openjdk-maven/Dockerfile
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# Используем образ 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
|
||||
Reference in New Issue
Block a user