Docker – это набор платформенных продуктов в качестве сервисов, который использует виртуализацию на уровне операционной системы для предоставления нам программного обеспечения, называемого “контейнерами”. Контейнеры изолированы друг от друга и представляют собой группу программного обеспечения, библиотек и архивов конфигурации.
теперь, используя вашу учетную запись docker hub, давайте создадим репозиторий!
Что ж, теперь у нас есть общедоступный репозиторий
теперь войдите в приложение docker hub, если вы используете Linux, используйте приведенную ниже команду в терминале:
docker login -u {you_username}, нажмите enter и введите свой пароль.
теперь вам следует создать архив с именем “Dockerfile” в корневом каталоге и написать эти команды:
FROM openjdk:15 VOLUME /tmp ARG DEPENDENCY=target/dependency COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY ${DEPENDENCY}/META-INF /app/META-INF COPY ${DEPENDENCY}/BOOT-INF/classes /app ENTRYPOINT ["java","-cp","app:app/lib/*", "com.spiet.aws_spring01.AwsSpring01Application"]
obs: измените com.spieth. Aws… в ваш пакет с классом инициализации
Редактирование build.gradle
Во-первых, нам нужно добавить сценарий сборки, чтобы выполнить сборку перед загрузкой приложения в изображение
buildscript { ext { springBootVersion = '2.5.6' } repositories { mavenCentral() maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath("gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.22.2") } }
obs: видите, что мне нужны зависимости palantir.gradle.докер в скрипте сборки, поэтому в сеансах плагина ниже нам также нужно добавить идентификатор ‘com.palantir.docker’ версии ‘0.22.2’.
затем, ниже в группе: измените группу на свой docker в docker hub.
ДАЛЕЕ, ниже, нам нужно добавить загрузочный Jar с информацией о репозитории и основном классе приложения:
bootJar { baseName = 'aws_training_01' version = '1.0.0' mainClassName = "com.pedrospiet.spring01.AwsSpring01Application" }
task unpack(type: Copy) { dependsOn bootJar from(zipTree(tasks.bootJar.outputs.files.singleFile)) into("build/dependency") } docker { name "${project.group}/${bootJar.baseName}" tags "${bootJar.version}" copySpec.from(tasks.unpack.outputs).into("dependency") buildArgs(['DEPENDENCY': "dependency"]) }
Это Работает
Запуск изображения в контейнере на Intellij IDEA
Сначала нажмите ALT + 8
нажмите на кнопку выполнить
В сеансе изображения мы можем найти наше изображение, поэтому нажмите правой кнопкой мыши и перейдите в раздел “Создать контейнер”.
настройте порты:
перейдите к ПОДАЧЕ ЗАЯВКИ и ЗАПУСТИТЕ, теперь мы можем протестировать в бессоннице
ЭТО РАБОТАЕТ!
Оригинал: “https://dev.to/pedrospiet/how-to-build-microsservices-with-spring-boot-and-aws-with-fargate-and-docker-part-2-687”