问题描述
想知道如何从Gitlab CI部署到AppEngine标准环境。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据我所了解,有两种部署GAE应用的方式:
1. 使用gcloud app deploy
命令:
gcloud app deploy - deploy the local code and/or configuration of your app to App Engine
- 使用Admin API。参考使用Admin API部署应用:
- 将应用的资源上传到Cloud Storage。
- 创建一个定义部署的配置文件。
- 创建并发送部署应用的HTTP请求。
gcloud
(用于第一种方法)和gsutil
(用于第二种方法的第一步)都是Google Cloud SDK的一部分,所以你需要在你的runner上安装SDK。
以下是一个使用第一种方法的GAE部署示例的必要步骤,该示例来自Getting started with Angular 6, GitLab CI/CD and Google App Engine(可能需要详细阅读):
– 在Gitlab中设置环境变量,包括GAE服务账号和项目ID信息。
– 在你的.gitlab-ci.yml
文件的部署部分,添加一个before_script
部分来安装SDK(根据当前SDK版本进行更新):
before_script:
- wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-218.0.0-linux-x86.tar.gz
- tar -xzf google-cloud-sdk-218.0.0-linux-x86.tar.gz
- ./google-cloud-sdk/install.sh
- 添加一个
script
部分来进行实际的部署,并引用那些环境变量:
script:
- echo $GAE_KEY_FILE > gae_auth.json
- ./google-cloud-sdk/bin/gcloud auth activate-service-account --key-file gae_auth.json
- ./google-cloud-sdk/bin/gcloud app deploy --project=$GAE_PROJECT_ID
方案2
使用脚本或工具来管理部署可能会增加复杂性,并且需要确保环境变量和命令的正确设置。
另一种方法是编写脚本或使用工具来控制部署。你可以使用gcloud app deploy
命令手动控制部署,或者使用一些第三方工具来管理部署的依赖关系。
希望这些解决方案能帮助到你!
正文完