Files
cookieGenerator/Dockerfile
2025-05-01 14:50:43 +03:00

88 lines
3.1 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.

# 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"]