本地构建部署

如果您需要从Git拉取代码,并在单台ECS上完成本地的构建与部署,您可以参见本文档完成本地构建与部署。

说明

本示例模板主要用于在单台ECS本地构建并部署应用的场景,如果需要把构建物发布到仓库或者部署到多台ECS,请参考其他相应的示例模板,例如构建镜像至ACR构建镜像至ACR并部署构建软件包至OSS以及构建软件包至OSS并部署

前提条件

  • 您已创建ECS实例,更多信息,请参见创建实例

  • ECS实例需要有公网,更多信息,请参见开通公网

示例模板流程

image
  1. 由您指定代码源(例如OSS对象存储或Git),OOS将为您指定的代码源生成临时链接,用于后续代码拉取。

  2. 自动拉取代码,并执行构建和部署的脚本。

使用示例

代码源准备

本示例使用了一个Spring Boot的示例项目代码来演示,代码已上传到GiteeGitHub仓库,如果想要使用,请先fork到自己的仓库。代码地址:

创建模板

  1. 登录系统运维管理控制台。

  2. 在左侧导航栏,选择自动化任务 > 自定义任务模板,单击创建模板

  3. 构建部署区域,选择本地构建部署,单击下一步

  4. 流程配置页签下,填写模板参数,然后单击创建模板

    1. 指定您的代码源,为下一步拉取代码做准备,生成一个临时授权链接。

      本示例以Gitee为代码源,填写该代码源的所有者组织仓库以及分支等参数。

      说明
      • 如果您未授权阿里云从您的GitHub/Gitee读取您的代码仓库,请单击前往授权来完成授权操作。

      • 如果您之前已经Fork示例代码,您只需下拉仓库,会自动展示您账号下所有仓库,请选择Fork的示例代码仓库。

      2024-12-16_11-42-41.png

    2. 拉取代码,构建并部署应用。

      选择您想要构建并部署的ECS实例,代码源选择git,代码源链接引用了上一任务的输出结果(默认为authorizedUrl),本文仅提供一个构建部署脚本的示例,您可按需将该示例换成适合自己项目的脚本。

      部署脚本.png

      部署脚本示例(Alibaba Cloud Linux 3)

      ### Build jar file.
      set -e
      yum install -y maven-3.5.4
      mvn package
      
      ### Stop the previous version of the application (if any) and deploy the current version.
      PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
      if [ -n "$PID" ]; then
          kill -9 $PID
      fi
      java -jar target/sample-spring-1.0-SNAPSHOT.jar &

      部署脚本示例(Ubuntu)

      ### Build jar file.
      set -e
      apt install -y maven
      mvn package
      
      ### Stop the previous version of the application (if any) and deploy the current version.
      PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
      if [ -n "$PID" ]; then
        kill -9 $PID
      fi
      java -jar target/sample-spring-1.0-SNAPSHOT.jar &

      部署脚本示例(CentOS)

      ### Build jar file.
      set -e
      yum install -y maven
      mvn package
      
      ### Stop the previous version of the application (if any) and deploy the current version.
      PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
      if [ -n "$PID" ]; then
        kill -9 $PID
      fi
      java -jar target/sample-spring-1.0-SNAPSHOT.jar &
      说明

      执行模板后,这里的代码会被拉取到一个文件夹下(路径为/root/workspace/执行模板任务ID),构建部署脚本也会以该文件夹为工作路径,如果需要切换到其他路径,请在脚本中完成。image

    3. 填写完毕,单击创建模板

执行模板

  1. 登录系统运维管理控制台。

  2. 在左侧导航栏,选择自动化任务 > 自定义任务模板

  3. 自定义任务模板页面,找到已创建的模板,单击对应操作列下的创建执行

  4. 基本信息阶段,配置相应参数,单击下一步:设置参数

  5. 设置参数阶段,如果没有可配置的参数,直接单击下一步:确定

  6. 单击创建

    在任务执行管理页面,执行状态显示为成功时,表示模板执行任务已完成。

    执行模板结果-zh.png

  7. 登录云服务器ECS控制台

  8. 找到您选择的ECS实例并远程连接该实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  9. 执行以下命令,确认本地构建部署是否成功。

    curl http://localhost:8080/hello

    看到返回字段,即表明部署成功。image