В предыдущем блоге мы интегрировали приложение весенней загрузки с EC2 . Это одна из самых простых форм развертывания, которые вы можете использовать в Amazon Web Services.
В этом уроке мы создадим образ докера с нашим приложением, который будет сохранен в реестре контейнера Amazon EC2 .
Вам необходимо установить инструмент aws cli .
С нашим приложением Spring мы сделаем все как можно проще, поэтому воспользуемся примером с официальной страницы источника Spring. Применяются только изменения к упаковке и названию приложения.
Наше приложение должно называться ecs-deploy
1
|
rootProject.name = 'ecs-deployment' |
Затем мы создаем и запускаем наше приложение
1
2
|
gradle build gradle bootRun |
Теперь давайте докеризуем наше приложение.
Сначала мы создадим Dockerfile, который будет находиться в src / main / docker.
1
2
3
4
5
6
|
FROM frolvlad/alpine-oraclejdk8 VOLUME /tmp ADD ecs-deployment-1.0-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS= "" ENTRYPOINT [ "sh" , "-c" , "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] |
Затем мы должны отредактировать наш файл Gradle, чтобы добавить зависимость Docker, плагин Docker и дополнительную задачу Gradle для создания нашего образа Docker.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
buildscript { ... dependencies { ... classpath( 'se.transmode.gradle:gradle-docker:1.2' ) } } ... apply plugin: 'docker' task buildDocker( type : Docker, dependsOn: build) { push = false applicationName = jar.baseName dockerfile = file ( 'src/main/docker/Dockerfile' ) } |
И мы готовы построить наш образ докера.
1
|
./gradlew build buildDocker |
Вы также можете запустить приложение Docker из только что созданного образа.
1
|
docker run -p 8080 : 8080 -t com.gkatzioura.deployment/ecs-deployment: 1.0 -SNAPSHOT |
Первый шаг — тоже создайте наш репозиторий ecr.
1
|
aws ecr create-repository --repository-name ecs-deployment |
Тогда давайте продолжим нашу аутентификацию реестра Docker .
1
|
aws ecr get-login |
Затем выполните команду, указанную в выводе. Попытка входа в систему будет успешной, и вы готовы приступить к отправке изображения.
Сначала пометьте изображение, чтобы указать репозиторий, который мы ранее создали, а затем выполните команду docker push.
1
2
|
docker tag {imageid} {aws account id }.dkr.ecr.{aws region}.amazonaws.com /ecs-deployment :1.0-SNAPSHOT docker push {aws account id }.dkr.ecr.{aws region}.amazonaws.com /ecs-deployment :1.0-SNAPSHOT |
И мы сделали! Наш образ докера для весенней загрузки развернут в реестре контейнера Amazon EC2.
Вы можете найти исходный код на github .
Ссылка: | Загрузите изображения Spring Boot Docker на ECR от нашего партнера JCG Эммануила Гкациоураса в блоге gkatzioura . |