当您需要从Git拉取代码,并在单台ECS上完成本地的构建与部署,您可以使用ECS的构建部署功能,快速完成本地构建与部署。
适用场景
适用于在单台ECS上构建部署。如果您需要在多台ECS实例上部署应用,请参见构建部署示例模板。
代码源为Gitee或GitHub平台的代码仓库。
前提条件
部署应用的ECS实例需满足以下条件:
ECS实例为Linux操作系统。
ECS实例需开通公网。具体操作,请参见为ECS实例开通公网。
ECS实例必须处于运行中状态。
ECS实例已安装云助手,并且云助手状态为正常。
示例代码
本文操作使用了一个Spring Boot的项目代码来演示,代码已上传到Gitee和GitHub仓库,如果想要使用,请先fork到自己的仓库。代码地址:
Gitee:gitee示例代码(中国内地地域建议使用Gitee)
GitHub:github示例代码
操作步骤
以下操作以Alibaba Cloud Linux 3.2104操作系统为例,不同环境可能会相关的构建部署命令不同,请按需调整。
登录ECS管理控制台。
在左侧导航栏,选择 。
在页面左侧顶部,选择目标资源所在的资源组和地域。
找到目标ECS实例,单击实例ID进入实例详情页,选择
。单击创建执行,填写代码源配置和构建部署配置,然后单击下一步。
代码源配置:选择所有者、组织、仓库。
重要首次使用时,请单击前往授权,授权阿里云从您的Github/Gitee仓库拉取代码。
如果使用示例代码,请先fork到自己的仓库,您可以在仓库下拉列表中找到对应代码库。
下载路径默认为
/root/workspece/{执行ID}
。如需指定路径,请确保您提供的路径下没有文件,否则会拉取失败。
构建部署配置:
是否使用Docker构建:如果选择是,系统会检测您的ECS上是否已安装Docker,如果没有会为您自动安装。您在构建部署脚本中可直接使用Docker相关命令。
重要Docker构建仅支持以下操作系统:
Alibaba Cloud Linux 3/2
CentOS 7.7/7.8/7.9
Ubuntu 18.04/20.04/22.04/24.04
Debian 11/12
构建部署脚本:您可以根据业务需要,编写部署脚本。
重要以下示例脚本供您参考,您可以复制到构建部署脚本框内。
以下示例脚本需您将示例代码中的代码fork到自己的仓库才能使用。
本地部署脚本示例
##### Sample Java Deploy Script ##### for ECS on Alibaba Cloud Linux 3.2104 # 构建当前版本jar包 set -e yum install -y maven-3.5.4 mvn package # 停止上一版本的应用(如有),并部署当前版本 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 & ##### end
Docker部署脚本示例
# 构建当前版本的镜像 docker build -t myapp:latest . container_name="my-container" # 停止上一版本的容器(如有) container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker stop $container_id docker rm $container_id fi # 启动当前版本的容器 docker run -d -p 8080:8080 --name ${container_name} myapp:latest
确认基本信息和任务信息,单击确定。
该执行任务会从您指定的代码仓库拉取代码到ECS实例,并在您的代码根目录运行构建部署脚本。
当执行状态为已完成,说明部署已完成。
本文示例中,您可以在浏览器中输入
http://ECS实例公网IP:8080/hello
查看已部署的应用。页面返回如下信息,说明已部署成功。说明本文示例ECS需开通入方向8080端口,具体操作,请参见添加安全组规则。
当您修改代码并推送到代码库后,您可以单击再次执行,部署脚本会检测并停止已部署应用,然后重新拉取部署最新的代码。
相关文档
更多部署应用模板,请参见构建部署示例模板。