首页 > 解决方案 > 如何使用 Azure DevOps 在 Azure 中部署和管理 docker 实例?

问题描述

我们的项目需要两个 docker 实例:

应该禁止公共访问 MySQL。但是,如果需要手动更改数据库或获取它的转储,应该有一种方法可以从特定计算机/特定 AAD 用户连接到 MySQL 服务器。

PHP Web 应该可以使用自定义或 Let's Encrypt 证书通过 HTTPS 访问。不确定是否应该在 PHP 实例内部、通过代理实例、通过 Azure API 网关或其他方式进行处理。

部署一个新的 PHP 镜像后,CI 应该在 docker 镜像中运行一个脚本来迁移 MySQL 模式和数据。该脚本应该获得一个类似于 MySQL 的“root”密码,因此它有足够的权限来完成它的工作。

我们将 Azure DevOps 用于 git 存储库和 CI。

我能够设置 Azure DevOps Pipeline YAML 来构建自定义 PHP 映像并将其发布到 Azure 容器存储库。但是,我没有找到合适的任务来从 Azure DevOps Releases 启动/配置/部署/停止容器实例。我也不确定使用什么/如何添加 HTTPS 支持。

这是我在生产中的第一个 docker 部署——到目前为止,我只使用 docker 进行开发。我试图研究文档,搜索网络,但仍然不知道最佳实践是什么,如何一起构建它。我会欣赏任何,甚至是部分帮助和提示,如何正确部署这个东西。谢谢。

标签: azuredockerdocker-composeazure-devopsazure-pipelines

解决方案


I was able to set up a Azure DevOps Pipeline YAML to build and publish the custom PHP image to an Azure Container Repository. However, I found no suitable tasks to start/configure/deploy/stop a Container Instance from Azure DevOps Releases. Neither I am sure what to use / how to add HTTPS support.

由于您已经成功设置 CI 来构建 docker 映像并将其推送到 Azure 容器注册表 (ACR)。

然后,您可以同时使用 Azure App Service deploy 和 Azure Web App for Containers 任务来处理部署。

Azure WebApp 容器任务与其他内置 Azure 任务类似,需要Azure 服务连接作为输入。Azure 服务连接存储从 Azure Pipelines 或 Azure DevOps Server 连接到 Azure 的凭据。

请看下面的博客展示:人们如何实际构建他们的容器,然后将它们部署到每个环境?:

Neither I am sure what to use / how to add HTTPS support.

这部分,根据我个人的理解,应该更多的涉及到Docker镜像端。这应该与 Azure DevOps 管道端无关。


推荐阅读