我用的是苹果m1。 我有一个基本的 dotNet 8 Web api,可以在我的本地 docker 上运行
程序.cs
var builder = WebApplication.CreateBuilder(args);
var port = Environment.GetEnvironmentVariable("PORT") ?? "80";
builder.WebHost.UseUrls($"http://*:{port}");
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddControllers();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.MapControllers();
app.Run();
Docker 文件
# build
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
WORKDIR /app
# copy csproj and restore dependecies
COPY *.csproj ./
RUN dotnet restore
# Copy others files and build
COPY . ./
RUN dotnet publish -c Release -o out
# run
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
EXPOSE 80
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "BgxApi8.dll"]
它适用于本地docker
docker build -t bgxapi8 .
docker run -p 80:80 bgxapi8
GET {{baseUrl}} -> "It works"
我尝试通过 Azure 容器注册表使其在 azure Web 应用程序上运行 我创建一个名为 bgxapi8container 的 Azure 容器注册表 我推本地 docker
docker tag bgxapi8:latest bgxapi8container.azurecr.io/bgxapi8:latest
docker push bgxapi8container.azurecr.io/bgxapi8:latest
然后从界面中我创建一个带有选项的网络应用程序: 操作系统:Linux 发布:容器 Docker 选项:独特的容器 图片来源:Azure 容器注册表 注册表:bgxapi8container 标签: 最新 启动命令:无
当我尝试访问 api 的根目录时,我收到此错误消息:“( 应用程序错误 如果您是应用程序管理员,则可以访问诊断资源。”
如果我查看日志,我有这个
...2023-12-02T09:02:39.420Z 信息 - e194839a3db8 拉完成 2023-12-02T09:02:40.160Z 信息 - 摘要: sha256:1ac77a5b131c17b141f23e7fe360eb92d9d2d405c5e4783b23261c8f49d031c2 2023-12-02T09:02:40.160Z 信息 - 状态:下载了更新的图像 bgxapi8container.azurecr.io/bgxapi8:最新 2023-12-02T09:02:40.165Z 信息 - 拉取镜像成功,耗时:16 秒 2023-12-02T09:02:41.162Z INFO - 启动站点容器 2023-12-02T09:02:41.162Z 信息 - docker run -d --expose=80 --name bgxapi8_0_d872b733 -e WEBSITE_USE_DIAGNOSTIC_SERVER=false -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=bgxapi8 -e WEBSITE_AUTH_ENABLED=False -e PORT=80 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=bgxapi8.azurewebsites.net -e WEBSITE_INSTANCE_ID=d48e7722c44716b2d3b260fd39937cd26b4df2c1aad20041 8e83e1648d9c8bd5 bgxapi8container.azurecr.io/bgxapi8:最新 2023-12-02T09:02:41.162Z 信息 - 此容器未启用日志记录。请用 https://aka.ms/linux-diagnostics 启用日志记录以查看容器 在这里记录。 2023-12-02T09:02:43.219Z 信息 - 启动预热请求 到站点 bgxapi8 的容器 bgxapi8_0_d872b733 2023-12-02T09:02:43.244Z 错误 - 站点的容器 bgxapi8_0_d872b733 bgxapi8 已退出,站点启动失败 2023-12-02T09:02:43.249Z ERROR
- 容器 bgxapi8_0_d872b733 未响应端口 80 上的 HTTP ping,站点启动失败。请参阅容器日志进行调试。 2023-12-02T09:02:43.280Z 信息 - 停止网站 bgxapi8 因为它 启动时失败。
您知道问题是什么以及如何解决吗?