c# - 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
谁能帮我找出可能出了什么问题?
解决方案
让我告诉你如何找到解决方案。
首先,您收到 404 错误,因此您正在访问容器,但默认端点不在 localhost:5002。
例如,如果您正在访问您的 api,例如 http://localhost:5002/api/values 或 http://localhost:5002/weatherforcast,请尝试一下。
推荐阅读
- java - 为什么if语句里面的计数器不起作用?
- php - Wordpress - 无法更新到最新版本
- laravel - 方法 App\Http\Controllers\FriendshipController::assertCount 不存在
- python - 当 python 脚本运行时,Blender 物理暂停
- android - React Native APK 未安装在 Oreo 上
- apache-spark-sql - Spark SQL 中的检查点
- javascript - 如何在 WordPress REST API 中获取自定义字段发布对象数据
- go - 类型为 interface{} 时初始化 nil 指针
- tooltip - Oracle APEX 20.1 - 自定义字段帮助/工具提示
- google-apps-script - 使用 Google Apps 脚本查找特定值,然后在同一行中填充单元格