如何在云端Jelastic上部署带有PostgreSQL的Spring Boot应用程序?

时间:2017-04-10 16:47:00

标签: java postgresql spring-boot deployment jelastic

我有一个简单的Spring Boot应用程序,包含Angular JS web-client和PostgreSQL数据库。此时我可以通过Maven为我的应用程序创建JAR或WAR。我也有一个有效的Postgres数据转储。

有人可以给我一些路线图,告诉我如何在Jelastic上成功托管我的应用程序和数据?

2 个答案:

答案 0 :(得分:4)

首先,我的Jelastic提供商得到了很大的支持,所以他们帮助了很多。

第一部分是部署应用程序(或者您可以从复制Postgres数据开始。这为您提供了必要的信息,以便您可以在部署应用程序之前更正application.properties)

  1. 支持建议使用他们的Maven插件进行构建。 链接:maven-plugin-jelastic
  2. 您应该配置Application类,以便创建可部署的战争。 链接:howto-create-a-deployable-war-file
  3. 注意你必须禁用Spring Boot的嵌入式Tomcat。 spring-boot-starter-web 依赖项启动嵌入式Tomcat,因此您可以通过以下方式禁用它:
  4. <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    1. 然后按以下方式部署您的应用:
    2.   

      mvn jelastic:deploy

      1. 如果您拥有Angular Web客户端,则可能需要更正访问服务器的基本URL。您没有端口,因此如果在Jelastic上创建环境期间设置了上下文名称,则应添加上下文名称。
      2. 例如,如果您将Jelastic中的上下文命名为“loc”,则baseURL将为:

        angular.module('localizeApp')
            .constant("baseURL", "/loc/")
        
            .service('LocalizeData', ['$http', 'baseURL', function ($http, baseURL) {
        
                this.getConfig = function () {
                    return $http.get(baseURL + "config");
                };
        

        部署的第二部分是在Jelastic上复制Postgres本地转储。这很简单。

        1. 使用pgAdmin转储Postgres数据库。
        2. 使用Jelastic在您创建环境时提供的信息,访问Jelastic Postgres网络控制台。
        3. 使用正确的名称创建新数据库。用密码创建用户。
        4. 如果您的转储不是很大,请转到Web控制台中的SQL部分,然后选择上传文件。选择您的转储文件。执行它。就是这样。
        5. 如果您有一个大型数据库,那么您可以通过SCP上传转储文件(请参阅ssh连接)并通过命令行导入。例如,支持人员推荐使用WinSCP。
        6. 然后你应该纠正 application.properties

          spring.datasource.url=jdbc:postgresql://your_jelastic_postgres_url/your_database
          

          同时设置正确的用户名和密码。

答案 1 :(得分:0)

ch,我们很高兴地注意到您发布了一篇文章Hosting Spring Boot Standalone and Clustered Java Applications with Jelastic Cloud

借助Jelastic的Spring Boot堆栈模板,您可以通过易于使用的图形界面或自动化脚本轻松地在云中运行各种基于Java的应用程序。可以在此服务器中托管以下Java项目类型:

JAR - 用于使用Spring BootDropwizardSpark框架创建的独立Java应用程序或无状态微服务实例

WAR - 适用于具有嵌入式servlet容器的Web应用程序

创建Spring Boot环境

因此,请登录您的Jelastic Cloud仪表板,然后开始使用。

  1. 首先,您需要创建一个新环境 - 使用同名按钮启动拓扑向导。切换到Java语言选项卡,然后在左侧面板的应用程序服务器层中选择SpringBoot模板,如下所示。设置已分配资源的数量,键入您的环境名称,然后单击“创建”以继续。
  2. enter image description here

    版本兼容性:

    • 使用1.x-2.x标签的指示意味着Jelastic管理的Spring 引导服务器可以运行基于这些版本构建的任何应用程序

    • 当前的自定义Spring Boot堆栈是在Jelastic中配置的 4.10及更高版本的平台。

      1. 当您的新环境出现在仪表板上时,您可以单击“在浏览器中打开”以启动预安装的Hello World应用程序示例。

    enter image description here

    通过这种方式,您可以确保Spring Boot实例已启动并运行。

    enter image description here

    请按照full instructions了解如何将自定义Java应用程序集成到创建的Spring Boot环境中。