В предыдущем блоге мы интегрировали приложение весенней загрузки с EC2 . Это одна из самых простых форм развертывания, которые вы можете использовать в Amazon Web Services.
В этом уроке мы создадим образ докера с нашим приложением, который будет сохранен в реестре контейнера Amazon EC2 .
Вам необходимо установить инструмент aws cli .
С нашим приложением Spring мы сделаем все как можно проще, поэтому воспользуемся примером с официальной страницы источника Spring. Применяются только изменения к упаковке и названию приложения.
Наше приложение должно называться ecs-deploy
|
1
|
rootProject.name = 'ecs-deployment' |
Затем мы создаем и запускаем наше приложение
|
1
2
|
gradle buildgradle bootRun |
Теперь давайте докеризуем наше приложение.
Сначала мы создадим Dockerfile, который будет находиться в src / main / docker.
|
1
2
3
4
5
6
|
FROM frolvlad/alpine-oraclejdk8VOLUME /tmpADD ecs-deployment-1.0-SNAPSHOT.jar app.jarRUN 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-SNAPSHOTdocker push {aws account id}.dkr.ecr.{aws region}.amazonaws.com/ecs-deployment:1.0-SNAPSHOT |
И мы сделали! Наш образ докера для весенней загрузки развернут в реестре контейнера Amazon EC2.
Вы можете найти исходный код на github .
| Ссылка: | Загрузите изображения Spring Boot Docker на ECR от нашего партнера JCG Эммануила Гкациоураса в блоге gkatzioura . |