Как правильно создать .ebextensions для AWS Beanstalk через maven для приложения Spring Boot - PullRequest
0 голосов
/ 08 ноября 2018

Мы должны настроить файл hosts в нашем динамически генерируемом экземпляре Elastic Beanstalk нашего приложения Spring Boot во время нашего конвейера GitLab CI / CD.Для этого нам нужно предоставить каталог .ebextensions с файлом конфигурации, который выглядит следующим образом:

commands:
  01_add_hosts:
    command: echo 123.12.12.123 myhost.com >> /etc/hosts

Поскольку у нас есть приложение с загрузочной пружиной, мы должны упаковать .ebextensions на корневом уровненашей толстой банки.Итак, в основном мы распаковываем jar, добавляем каталог ebextensions и возвращаем его обратно.Таким образом, мы успешно выполняем настройку Beanstalk в наших конвейерах Gitlab.

Однако, чтобы сделать этот процесс, мы используем maven-antrun-plugin следующим образом:

<!-- Bundle .ebextensions inside jar -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>prepare</id>
            <phase>package</phase>
            <configuration>
                <tasks>
                    <unzip src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.directory}/${project.build.finalName}" />
                    <copy todir="${project.build.directory}/${project.build.finalName}/" overwrite="false">
                        <fileset dir="./" includes=".ebextensions/**"/>
                    </copy>
                    <zip compress="false" destfile="${project.build.directory}/${project.build.finalName}.jar" basedir="${project.build.directory}/${project.build.finalName}"/>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Проблема в том, что maven-antrun-pluginи старый плагин от 2014 года, и это выглядит не лучшим способом для достижения этого комплекта банку.

Знаете ли вы, каким образом или каким способом пружинной загрузки создается этот комплект банок?Я имею в виду добавить каталоги / файлы на корне уровня фляги в весенней загрузке?Помните, что мы связываем это во время нашей конвейерной работы, которая развертывается через плагин AWS Beanstalk maven.

1 Ответ

0 голосов
/ 08 ноября 2018

Требуется ли загружать только банку в эластичный бобовый стебель? То, как мы это делаем, это то, что мы загружаем zip-файл, содержащий наш толстый jar, каталог .ebextensions и Procfile. Таким образом, ebextensions применяются, и Procfile содержит команду для запуска процесса Java.

Так, например, вы можете загрузить hello-world.zip, содержащий:

  • .ebextensions:
    • hosts.config
  • привет-world.jar
  • PROCFILE

С Procfile, являющимся текстовым файлом, содержащим:

web: java -jar hello-world.jar

Если вы делаете это так, вам не нужно вставлять файлы ebextension в jar-файл приложения, что, на мой взгляд, делает все намного проще.

Procfile документация

...