azure - 为 Azure 多容器应用程序(多个存储库)设置 Azure Pipelines
问题描述
我目前有一个网络应用程序分为三个部分。每个部分都有自己的 git 存储库。
- 前端 Angular (foo.bar)
- 后端 Angular (foo.bar/admin)
- .NET Core API (foo.bar/api)
前面是一个 NGINX 服务器,它充当反向代理。目前,这一切都在一个虚拟机上运行,并带有一个 Jenkins 服务器,它允许我单独开发和部署每个部分,这是我非常喜欢的。
我想将应用程序容器化并将其移动到 Azure Web Service for Containers。对于 CD/CI,我想使用 Azure DevOps 和 Azure Pipelines。由于 Azure Web Service for Containers 通过 Docker Compose 和 Kubernetes 支持多容器。
主要问题是: 如何在多容器(通过 Docker Compose)环境中构建和部署一个特定容器(例如 Azure/frontend:10)?(不构建所有其他容器)
如果这是可能的...
- 如何设置 Azure Pipelines 和 Azure 容器注册表以允许我单独的容器部署
- docker-compose 文件在哪里?在单独的存储库中?
- 反向代理 NGINX Dockerfile 在哪里?在单独的存储库中?
还是我需要使用 Kubernetes?
或者,我可以在同一个服务计划上使用三个不同的 App Web,并按域/子域控制它。
- 前端 Angular (foo.bar)
- 后端 Angular (admin.foo.bar)
- .NET Core API (api.foo.bar)
我不知道从哪里开始。这也是一个小项目。我不想让它太复杂。
任何提示都非常受欢迎。提前致谢!
解决方案
我没有使用 Azure Pipelines 的经验,但是对于 Azure Container Registry 和 Azure Web App for Container 有一些想法。
首先,如果您只想通过 Docker compose 在多容器中构建一个特定的容器,您可以在教程中进行设置:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
组合也可以与文件中设置的一个容器一起使用。
其次,撰写文件可以在您运行命令为容器创建 Web 应用程序的任何地方。例如,您可以使用存储在本地计算机中的撰写文件在本地计算机上运行 CLI 命令。
第三,如果你使用 Azure Web App for Container,你应该在你的存储库中准备好之前准备好的 docker 镜像,例如 Azure Container Registry。它不喜欢安装在本地机器上的 docker compose。
AKS 也是一个不错的选择。您可以一个一个地创建服务,也可以将它们全部设置在一个 yaml 文件中。它非常灵活。
希望这会帮助你。如果您需要有关 AKS 或 ACR 的更多帮助,请留言。
推荐阅读
- java - 无法在中心对齐 HBox (JavaFX)
- r - 如果一行满足条件,则所有行都在 dplyr 中更改
- telnet - Telent 和命令在一行中
- ms-access - VBA - 多字段下拉框搜索查询
- javascript - 如何添加 req.user 来获取请求
- javascript - HTML 组合框弹出窗口上的 VBA 无法打开
- android - 我应该在旧笔记本电脑上使用哪个版本的 Android Studio?
- proxy - 如何使用 Traefik 作为自动旋转转发代理
- java - 如何将 5 个变量的块循环到 ArrayList - 块多次出现不同的值
- python - 应用随机森林后提取训练和测试的重要特征