Create sub project

This commit is contained in:
2025-05-01 14:50:43 +03:00
commit 6f203fb6bf
75 changed files with 160531 additions and 0 deletions

88
Dockerfile Normal file
View File

@ -0,0 +1,88 @@
# Stage 1: build jar
FROM ubuntu:22.04 AS build
ENV DEBIAN_FRONTEND=noninteractive
# Установка Maven
RUN apt-get update && \
apt-get install -y maven && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get install -y openjdk-21-jdk && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY pom.xml ./
RUN mvn dependency:go-offline -B
COPY src src
RUN mvn clean package -X -DskipTests
# Stage 2: deploy jar
FROM ubuntu:22.04
WORKDIR /app
# Аргумент для версии Chrome (можно переопределить при сборке)
ARG CHROME_VERSION="google-chrome-stable"
# Устанавливаем зависимости и Chrome
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
gnupg \
grep \
openjdk-21-jdk \
libgbm1 \
unzip \
jq \
ca-certificates \
fonts-liberation \
libu2f-udev \
xdg-utils \
# Добавляем репозиторий Google Chrome
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
# Устанавливаем Chrome
&& apt-get update \
&& apt-get install -y --no-install-recommends ${CHROME_VERSION} \
# Очищаем кеш apt
&& rm -rf /var/lib/apt/lists/*
# Устанавливаем ChromeDriver, используя jq для парсинга JSON
RUN set -e \
&& JSON_URL="https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json" \
# Выбираем URL для стабильного канала и linux64
&& CHROMEDRIVER_URL=$(wget -qO- "${JSON_URL}" | jq -r '.channels.Stable.downloads.chromedriver[] | select(.platform=="linux64") | .url') \
&& if [ -z "${CHROMEDRIVER_URL}" ]; then echo "Ошибка: Не удалось получить URL для ChromeDriver из JSON."; exit 1; fi \
&& echo "Скачиваем ChromeDriver по адресу: ${CHROMEDRIVER_URL}" \
&& wget -q --continue -P /tmp "${CHROMEDRIVER_URL}" \
# Распаковываем архив (имя может содержать версию, используем *)
&& unzip -q /tmp/*chromedriver-linux64.zip -d /usr/local/bin/ \
&& rm -rf /tmp/chromedriver* \
# Перемещаем chromedriver из возможной подпапки
&& mv /usr/local/bin/chromedriver-linux64/chromedriver /usr/local/bin/chromedriver || true \
&& rm -rf /usr/local/bin/chromedriver-linux64 \
&& chmod +x /usr/local/bin/chromedriver
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y locales && \
sed -i '/ru_RU.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen
ENV LANG=ru_RU.UTF-8 \
LC_ALL=ru_RU.UTF-8
COPY --from=build /app/target/cookieGenerator.jar ./cookieGenerator.jar
EXPOSE 8080
# Путь к ChromeDriver уже должен быть найден автоматически в /usr/local/bin
# Запускаем генератор
ENTRYPOINT ["java", "-jar", "cookieGenerator.jar"]