Встречается на собеседованиях • сегодня

Как упаковываешь Java приложение в Dockerfile

Вот пример оптимального Dockerfile для Java приложения:

dockerfile
# Используем многоэтапную сборку для уменьшения размера
FROM eclipse-temurin:17-jdk-jammy as builder
WORKDIR /app
COPY . .
RUN ./gradlew build --no-daemon

# Финальный образ
FROM eclipse-temurin:17-jre-jammy
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar

Оптимальные JVM параметры для контейнера

ENV JAVA_OPTS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0"

EXPOSE 8080
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar app.jar"]

text

Ключевые моменты:
1. Используем официальный образ Eclipse Temurin (аналог OpenJDK)
2. Многоэтапная сборка уменьшает итоговый образ
3. В финальном образе используем JRE вместо JDK
4. JVM параметры оптимизированы для работы в контейнере
5. Копируем только собранный jar-файл

Для Spring Boot можно использовать `spring-boot-maven-plugin` с `spring-boot:build-image` для создания оптимизированного образа без Dockerfile.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы