我的docker-compose.override.yml
如下:
version: '3.4'
services:
helen.api:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:5000
ports:
- "5001:443"
- "5000:80"
volumes:
- ~/.aspnet/https:/root/.aspnet/https:ro
- ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro
停靠文件:
# See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["MyProjectWebAPI/MyProject.API.csproj", "MyProjectWebAPI/"]
COPY ["MyProject.Globals/MyProject.Globals.csproj", "MyProject.Globals/"]
RUN dotnet restore "MyProjectWebAPI/MyProject.API.csproj"
COPY . .
WORKDIR "/src/MyProjectWebAPI"
RUN dotnet build "MyProject.API.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "MyProject.API.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyProject.API.dll"]
Docker-compose.yml
version: "3.4"
services:
helen.api:
image: ${DOCKER_REGISTRY-}helenapi
build:
context: .
dockerfile: HelenWebAPI/Dockerfile
当尝试访问停靠的ASP.NETWebAPI的任何URL时,我收到一个502错误网关错误:
2条答案
按热度按时间vof42yt11#
根据AWS文档,问题的原因可能是:
如果您使用Docker Compose管理Docker环境,Elastic Beanstalk会假设您将代理服务器作为容器运行。因此,
Proxy server
设置默认为None
,并且Elastic Beanstalk不提供NGINX配置。备注
即使您选择
NGINX
作为代理服务器,在使用Docker合成的环境中也会忽略此设置。代理服务器设置仍默认为None
。请遵循建议,尝试在一个docker-compose文件中提供您自己的nginx容器和相应的配置。例如:
Microsoft和AWS提供了有关
nginx.conf
文件外观的优秀指南:请注意,我们将容器
helen.api
引用为被代理的服务器,并且我们将使用在ASPNETCORE_URLS
设置中配置的端口5000
。2fjabf4q2#
Elastic Beanstalk的代理默认在端口5000上转发流量。因此,您应该配置nginx将请求转发到该端口,您的应用在- 80上侦听,或者您应该让您的应用在端口5000上侦听。
您当前配置:
入站流量---〉80:- -------------------------------------------------------------------------------------------------------------------------您的容器
应为:
入站流量---〉80:- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------您的容器
或者更易于配置:
入站流量---〉80:ngnix:任意---5000 ---〉5000:您的容器
通过简单地更改容器的环境属性,可以更容易地更改后者。
我对. NET的理解是零,但请看这里:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-linux-platform-nginx.html