问题描述
我是云服务和docker领域的新手。
我有一个电报机器人,它使用Python的航标图库开发。我可以使用命令python3.8 app.py启动它。如果没有错误,它将永远运行。
此外,我使用一个简单的sqlite3文件作为数据库存储(db.db),更新源代码时不需要更改该文件。
我将代码托管在Github存储库中,我希望GCP在提交给master时自动更新程序。
两个问题。
解决方法
正如@guillaume blaquiere所述,Google Cloud Build是一个不错的选择。
Cloud Build提供了Cloud Build GitHub app,使您每次将新的提交推送到GitHub时都可以自动构建代码。
考虑到每天前120分钟的构建时间是免费的;您需要为超出此阈值消耗的构建付费。有关更多信息,请参见Pricing页,如果您正在使用Dockerfile进行构建并将构建的映像存储在Container Registry中,则将收取Docker映像使用的存储和网络出口费用。
您可以看到以下guide,其中显示了如何安装Google Cloud Build应用,并将帮助您将GitHub存储库与Cloud项目连接并设置持续集成。
此外,我建议您看看GitHub App triggers,它使您能够自动在Git推送和拉取请求上调用构建,并在GitHub和Cloud Console上查看构建结果。
希望您发现此信息有用。
,Github操作可用于触发您的CI / CD管道。如果您担心时间和存储空间,可以尝试将代码托管在Gitlab中。
关于第二个问题。是的,您可以在CI / CD进程中使用gcloud命令来管理容器。我找不到删除旧容器的直接方法,但我认为您可以尝试以下几种方法:
- 使用特定值标记新的容器图像,以便 新创建的容器映像可以替换旧映像, 意味着注册表中将始终存在一个映像。
- 用时间戳记值标记新容器图像,您可以 删除所有带有旧时间戳标记的图像。