azure - 无法将 docker-compose 基础架构部署到 Azure 容器实例

标签 azure docker docker-compose azure-container-instances

我正在尝试将我的微服务应用程序部署到 Azure 容器实例。每个服务都表示为一个 Docker 镜像,存储在 DockerHub 中。 整个应用程序的基础设施在 docker-compose.yml 文件中描述:

version: '3.7'
services:
    db:
        image: darkmode1012/ticketflow_db:1.0.0
        environment:
            - POSTGRES_USER=postgres
            - POSTGRES_DB=postgres
            - POSTGRES_HOST_AUTH_METHOD=trust
        networks:
            - ticketflow-network
        restart: unless-stopped
        ports:
            - 5432:5432

    consul:
        image: "consul:1.8.5"
        networks:
            - ticketflow-network
        ports:
            - "8500:8500"

    identity-service:
        image: darkmode1012/ticketflow_identity-service:1.0.0
        networks:
            - ticketflow-network
        depends_on:
            - db
            - consul
        environment:
            - ASPNETCORE_ENVIRONMENT=Docker
            - ASPNETCORE_URLS=http://identity-service:9001
        restart: unless-stopped

    profile-service:
        image: darkmode1012/ticketflow_profile-service:1.0.0
        networks:
            - ticketflow-network
        depends_on:
            - db
            - consul
        environment:
            - ASPNETCORE_ENVIRONMENT=Docker
            - ASPNETCORE_URLS=http://profile-service:9002
        restart: unless-stopped

    ticket-service:
        image: darkmode1012/ticketflow_ticket-service:1.0.0
        networks:
            - ticketflow-network
        depends_on:
            - db
            - consul
        environment:
            - ASPNETCORE_ENVIRONMENT=Docker
            - ASPNETCORE_URLS=http://ticket-service:9003
        restart: unless-stopped

    movie-service:
        image: darkmode1012/ticketflow_movie-service:1.0.0
        networks:
            - ticketflow-network
        depends_on:
            - db
            - consul
        environment:
            - ASPNETCORE_ENVIRONMENT=Docker     
            - ASPNETCORE_URLS=http://movie-service:9004
        restart: unless-stopped            

    api-gateway:
        image: darkmode1012/ticketflow_api-gateway:1.0.0
        networks:
            - ticketflow-network
        depends_on:
            - consul
            - identity-service
            - profile-service
            - ticket-service
            - movie-service
        environment:
            - ASPNETCORE_ENVIRONMENT=Docker   
            - ASPNETCORE_URLS=http://host.docker.internal:8080
        restart: unless-stopped        
        ports:
            - "8080:8080"
                    
    web-client:
        image: darkmode1012/ticketflow_web-client:1.0.0
        networks:
            - ticketflow-network
        depends_on:
            - api-gateway
        ports:
            - 3000:3000
        stdin_open: true

networks: 
  ticketflow-network:
    driver: bridge

当我在本地运行docker-compose up时 - 它工作正常。但是,当我尝试将其部署到 Azure 容器实例(遵循指南 https://learn.microsoft.com/en-us/azure/container-instances/tutorial-docker-compose )时,我看到错误:

D:\Developing\Ticket_Flow>docker compose up
[+] Running 0/1
 - Group ticket_flow  Waiting                                             92.4s
containerinstance.ContainerGroupsClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: autorest/azure: Service returned an error. Status=<nil> Code="ServiceUnavailable" Message="The requested resource is not available in the location 'eastus' at this moment. Please retry with a different resource request or in another location. Resource requested: '9' CPU '8.1' GB memory 'Linux' OS"

我已经检查了所选“eastus”区域的 ACI 可用性 - 目前可用。 https://status.azure.com/en-us/status?WT.mc_id=A52BDE99C

此外,我尝试将资源组与另一个区域一起使用 - 错误仍然存​​在。

您能否告诉我什么可能导致此错误以及我该如何修复它?

最佳答案

据我所知,问题在于您的 Azure 容器实例所需的 CPU 资源超出了美国东部的限制。查看限制here 。美国东部的最大 CPU 是 4。但您需要 9。

当然,您可以使用maximum allocation来限制CPU。但我认为这对于你们所有的服务来说还不够。 ACI 以其轻量级而闻名。如果您需要对外暴露多个端口,我建议您使用AKS来部署您的服务,它更合适。

关于azure - 无法将 docker-compose 基础架构部署到 Azure 容器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65048750/

相关文章:

docker - Gitlab Runner没有提取在gitlab-ci.yml中定义为服务的图像

docker - 我运行 `docker rm <container id>`命令删除我的容器,但是为什么图像也消失了?

azure - 如何从 docker-compose 构建输出中提取图像名称和标签

mongodb - 如何使用 docker-compose 设置带有 pymonogo 应用程序的 mongodb?

macos - 服务 'nginx'无法构建:…只读文件系统

azure - 如何验证 Azure 逻辑应用中 "Execute a SQL query"操作的输出

entity-framework - 构建/构建 Azure 移动应用服务 Entity Framework 代码优先和 .NET APK 项目

c# - 从 Azure Blob 存储反序列化对象的最快方法?

azure - 为什么 Azure 流量管理器将澳大利亚服务器解析为美国服务器?

java - 启动Docker容器时获取java.lang.ClassNotFoundException