Я не знаю, как ваши друзья развертывают Spring Boot в производственной среде и запускают его как банку одним щелчком мыши? Бросить его в войну и запустить в контейнере Tomcat? Однако, по словам Сун Гэ, в настоящее время основным решением должно стать контейнерное развертывание.
В отличие от традиционных монолитных приложений, у микросервисов чаще возникают проблемы при развертывании из-за большого количества сервисов.В настоящее время развертывание с помощью Docker может очень хорошо решить эту проблему, которая также широко используется в настоящее время одной из программ.
Существует много разных способов упаковать проект Spring Boot в контейнер Docker для развертывания.Сегодня Сонг Гэ в основном хочет поговорить с вами о том, как упаковать проект Spring Boot в удаленный контейнер Docker одним щелчком мыши, а затем запустить его, запуск образа.Проект Spring Boot.
Что касается других вариантов использования Spring Boot в сочетании с Docker, не волнуйтесь, Song Ge будет медленно доходить до вас в последующих статьях.
1. Подготовка
1.1 Подготовить докер
Я буду использовать CentOS7 в качестве примера, чтобы продемонстрировать вам.
В первую очередь нужно установить Docker на CentOS7.Способов установки в интернете много,поэтому больше рассказывать не буду.В прошлом году я написал вводный туториал по Docker.Вы можете ответить в фоне официального аккаунтаDocker
Получите адрес загрузки учебника.
После успешной установки Docker нам сначала нужно изменить конфигурацию Docker и включить функцию разрешения удаленного доступа к Docker, способ открытия очень прост./usr/lib/systemd/system/docker.service
файл, добавьте следующее:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
Как показано ниже:
После завершения настройки сохраните и выйдите, а затем перезапустите Docker:
systemctl daemon-reload
service docker restart
После успешного перезапуска Docker подготовка Docker в порядке.
1.2 Подготовить ИДЕЮ
Подготовительные работы в IDEA в основном заключаются в установке плагина Docker, нажмитеFile->Settings->Plugins->Browse Repositories
следующее:
Нажмите зеленую кнопку «Установить» справа, чтобы завершить установку.После завершения установки необходимо перезапустить IDEA.
После успешного перезапуска IDEA открываем его по очередиFile->Settings->Build,Execution,Deployment->Docker
, а затем настройте адрес удаленного подключения Docker:
Настройте адрес Docker.После завершения настройки вы увидите сообщение об успешном подключении ниже, которое указывает на то, что Docker был подключен.
После этого наши приготовления идут нормально.
2. Подготовить проект
Далее давайте создадим простой проект Spring Boot (просто импортируйтеspring-boot-starter-web
Зависимость), после успешного создания проекта создаем общийHelloDockerController
, для тестирования, следующим образом:
@RestController
public class HelloDockerController {
@GetMapping("/hello")
public String hello() {
return "hello docker!";
}
}
Излишне говорить, что это очень простой интерфейс.
3. Настройте Dockerfile
Затем в корневом каталоге проекта я создаю Dockerfile в качестве файла сборки моего образа, конкретное расположение выглядит следующим образом:
Содержимое файла следующее:
FROM hub.c.163.com/library/java:latest
VOLUME /tmp
ADD target/docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Здесь всего четыре простые строки, позвольте мне сказать:
- Работа проекта Spring Boot зависит от среды Java, поэтому мой собственный образ построен на основе образа Java.
- Учитывая медленную загрузку официального образа Docker, я использовал образ Docker, предоставленный NetEase.
- Поскольку для запуска Spring Boot требуется каталог tmp, том данных настроен с использованием каталога /tmp.
- Скопируйте новую копию упакованного файла .jar в локальный целевой каталог в /app.jar.
- Последнее, что нужно сделать, это настроить команду запуска.Поскольку упакованный jar стал app.jar, команда запуска также запускает app.jar.
Вот простой Dockerfile, который мы настроили.
4. Настройте плагин Maven
Затем в файле pom.xml добавьте следующие плагины:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<dockerHost>http://192.168.66.131:2375</dockerHost>
<imageName>javaboy/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<forceTags>true</forceTags>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
Конфигурация этого плагина не сложна для понимания:
- Сначала настройте узел выполнения при выполнении пакета mvn, а также, кстати, выполните docker: build
- Затем настройте адрес хоста Docker, имя образа и теги образа в конфигурации, где dockerDirectory указывает расположение указанного Dockerfile.
- Наконец, настройте расположение и имя jar в узле ресурсов.
Хорошо, мы закончили, когда мы закончили.
5. Упакуйте и запустите
Далее упаковать проект.После завершения упаковки проект будет автоматически встроен в образ и загружен в контейнер Docker.Метод упаковки следующий:
Процесс упаковки будет немного староват, потому что он также включает в себя создание образа, особенно для упаковки в первый раз, вам необходимо загрузить базовый образ, который будет медленнее.
Некоторые журналы упаковки выглядят следующим образом (процесс сборки проекта):
После успешной упаковки проекта мы можем увидеть только что упакованный образ в контейнере Docker следующим образом:
5.1 Первый режим работы
На этом этапе мы можем напрямую создать контейнер этого образа в Linux, как обычный контейнер, затем запустить его и выполнить следующую команду:
docker run -d --name javaboy -p 8080:8080 javaboy/docker:0.0.1
После успешного запуска мы можем получить доступ к интерфейсу в контейнере.
Но эта операция, очевидно, все еще немного хлопотна.В сочетании с плагином Docker, который мы установили в начале, этот этап операции можно еще больше упростить.
5.2 Режим работы 2
Обратите внимание, что в настоящее время в нашей IDEA есть дополнительная опция, которая называется docker, а именно:
Нажмите зеленую кнопку «Пуск» слева, чтобы подключиться к контейнеру Docker.После успешного подключения мы можем увидеть все контейнеры и образы, которые в настоящее время находятся в Docker, включая только что созданный образ Docker, следующим образом:
На этом этапе мы выбираем изображение, щелкаем правой кнопкой мыши и создаем контейнер на основе этого изображения, как показано ниже:
Мы выбираем «Создать контейнер», затем заполняем некоторую необходимую информацию для контейнера, настраиваем имя контейнера, идентификатор изображения будет заполнен автоматически, используем «Указать» для открытого порта, а затем пишем отношение сопоставления портов:
После завершения настройки нажмите кнопкуrun
кнопку, чтобы начать работу. Журнал работы выглядит следующим образом:
Обратите внимание, что этот журнал печатается в этом окне в Docker.
После успешного запуска проекта введите адрес удаленного сервера в браузере для доступа:
После этого наш проект Spring Boot успешно публикуется в удаленном контейнере Docker.
Это весело? Попробуй!
Я загрузил случай этой статьи на GitHub, друзья могут обратиться к:GitHub.com/Len VE/Java не…