FROM openjdk:21-jdk-slim
# Устанавливаем рабочую директорию внутри контейнера
WORKDIR /app
# Копируем собранный JAR-файл вашего Spring Boot приложения внутрь контейнера
COPY docker_1-0.0.1-SNAPSHOT.jar app.jar
# Объявляем порт, на котором ваше приложение будет прослушивать запросы
EXPOSE 80
# Запускаем приложение при старте контейнера
ENTRYPOINT ["java","-jar","/app/app.jar"]
Описание процесса сборки Docker-образа
Данный Dockerfile предназначен для упаковки и запуска Java-приложения, разработанного на платформе Spring Boot. Рассмотрим подробнее каждый этап его построения.
Подробное описание каждой строки
Базовый образ
FROM openjdk:21-jdk-slim
Образ базируется на минимальной версии OpenJDK 21 (openjdk:21-jdk-slim), содержащей только необходимые компоненты для запуска Java-приложений.
Рабочая директория
WORKDIR /app
Устанавливается рабочая директория /app внутри контейнера. Последующие команды выполняются относительно указанной директории.
Копирование JAR-файла
COPY docker_1-0.0.1-SNAPSHOT.jar app.jar
Файл с вашим приложением (docker_1-0.0.1-SNAPSHOT.jar) копируется в рабочую директорию и переименовывается в app.jar.
Объявление порта
EXPOSE 80
Оповещает Docker о том, что контейнер ожидает обращения на порт 80. Важно отметить, что сам по себе этот шаг не обеспечивает внешний доступ к данному порту.
Необходимо отдельно настроить публикацию порта с помощью аргументов командной строки (например, docker run -p 8080:80 ...).
Запуск приложения
ENTRYPOINT ["java","-jar","/app/app.jar"]
Указывается команда, выполняемая при запуске контейнера: java -jar /app/app.jar. Таким образом, контейнер сразу запустит ваше Java-приложение.
________________________________________
Итоговая последовательность действий:
1. Выбор базового образа: используется минимальная версия OpenJDK 21.
2. Установка рабочей директории: задаётся как /app.
3. Копирование приложения: файл .jar перемещён в рабочую директорию и назван app.jar.
4. Настройка порта: заявлен порт 80 для обработки входящих запросов.
5. Автоматический запуск: приложение стартует командой java -jar /app/app.jar.
Примечание о порте 80
Порт 80 является стандартным для протокола HTTP. Использование этого порта позволяет сделать приложение доступным через обычный адрес браузера без указания номера порта.
Например, если приложение запущено на домене example.ru, оно будет доступно по адресу
http://example.ru, а не http://example.ru:порт.
Чтобы сервер слушал именно на порте 80, добавьте в конфигурационный файл application.properties следующую строчку:
server.port=80
Теперь ваше приложение будет готово для развертывания на виртуальных серверах типа
RUvds и станет доступным через стандартные адреса браузеров.
Главная страница