【问题标题】:Spring Boot web app: Sync Elastic Beanstalk with GitHubSpring Boot Web 应用程序:将 Elastic Beanstalk 与 GitHub 同步
【发布时间】:2019-07-18 07:48:43
【问题描述】:

我使用 Spring Boot 开发了一个 web 应用程序并在线测试它,我使用 Elastic Beanstalk 服务将 WAR 上传到 AWS。但是WAR文件真的很大,100多MB,所以每次要部署一个新版本,上传都要花很多时间。我的问题在这里诞生了......
有没有办法让 Elastic Beanstalk 与我的 git 存储库同步?如果能够将更改推送到 GitHub 上以便在 AWS 上部署新版本的 web 应用程序,那就太好了。

顺便说一句,WAR 文件这么大对吗?
如果有帮助,这是 pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>xxxx</groupId>
    <artifactId>xxxx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>xxx</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- JSTL -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!-- To compile JSP files -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- Need this to compile JSP -->
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity4</artifactId>
            <version>3.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>aws-sdk-java</artifactId>
            <version>2.4.11</version>
        </dependency>

    </dependencies>



    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

【问题讨论】:

    标签: spring amazon-web-services spring-boot amazon-elastic-beanstalk


    【解决方案1】:

    您所描述的是持续部署或持续交付。 AWS 的工具是 CodePipeline,它可以use Elastic Beanstalk as a destination

    【讨论】:

      【解决方案2】:

      您可以使用 CodePipeline 和 CodeBuild 将您的 GitHub 存储库与 Elastic Beanstalk 同步。

      1. 您的管道已配置为侦听您的存储库(例如在 master 上):源阶段。
      2. 当有新的提交时,会触发您的管道。
      3. 管道使用 CodeBuild 将您的应用程序构建到 WAR 文件:构建阶段。
      4. 管道的最后一个阶段是使用 Elastic Beanstalk 部署您的应用程序。

      【讨论】:

      • 我正在尝试这样做,但没有成功。你有指南或可以帮助我的东西吗?
      • 我没有指南,但互联网上资源丰富。考虑打开一个新问题,详细解释你做了什么,什么没用。
      猜你喜欢
      • 2020-07-05
      • 2019-03-08
      • 2019-04-20
      • 2019-12-18
      • 2017-08-07
      • 2015-09-07
      • 2017-09-28
      • 2019-07-27
      • 2020-11-09
      相关资源
      最近更新 更多