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