首页 > 解决方案 > docker api 和 web 应用程序容器的问题

问题描述

我正在使用包含 webapp 和 api 的 asp.net 核心创建一个解决方案。这两个项目都配置为在 docker 容器中运行。还有第三个容器,即数据库容器。我正在使用 MySQL。我创建了 docker-compose ps ,显然一切都很好,但我无法在浏览器中访问 API。浏览器只能访问 Web 应用程序。 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

我的连接字符串 在此处输入图像描述

Meu Dockerfile API

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
LABEL version="1.0.0" description="API Produto"
COPY dist /app
WORKDIR /app
EXPOSE 80/tcp
EXPOSE 445
ENTRYPOINT ["dotnet", "APIProduto.dll", "--environment=Development"]

Meu Dockerfile WebApp

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
LABEL version="1.0.0" description="Web App Produto"
COPY dist /app
WORKDIR /app
EXPOSE 80/tcp
EXPOSE 444
ENTRYPOINT ["dotnet", "WebAppProduto.dll", "--environment=Development"]

Meu docker-compose

version: "3"

volumes:
    produtosdata:
    
networks:
    frontend:
    backend:
    dbhost:
    
services:
        mysql:
            image: "mysql:5.7"
            volumes:
             - produtosdata:/var/lib/mysql
             - ./MySql_Init:/docker-entrypoint-initdb.d
            networks:
             - dbhost
            environment:
             - MYSQL_ROOT_PASSWORD=senhaprodutos1257
             - bind-address=0.0.0.0
             
        apiproduto:
            build:
                context: ./APIProduto
                dockerfile: Dockerfile
            networks:
                - dbhost
                - backend
            ports:
                - 5002:80
            environment:
                - DBHOST=mysql
            depends_on:
                - mysql
                
        webappproduto:
            build:
                context: ./WebAppProduto
                dockerfile: Dockerfile
            networks:
                - backend
                - frontend
            ports:
                - 5001:80
            environment:
                - HOST=apiproduto
            depends_on:
                - apiproduto

谁能帮我找出可能出了什么问题?

标签: c#dockerasp.net-coreasp.net-core-mvc

解决方案


让我告诉你如何找到解决方案。

  1. 首先,您收到 404 错误,因此您正在访问容器,但默认端点不在 localhost:5002。

  2. 例如,如果您正在访问您的 api,例如 http://localhost:5002/api/values 或 http://localhost:5002/weatherforcast,请尝试一下。


推荐阅读