ASP.NET Docker 中的 Core 3.0 应用无法在容器的 Azure Web 应用中启动
ASP.NET Core 3.0 app in Docker cannot start in Azure Web App for Container
我有一个针对 ASP.NET Core 3.0 的应用程序。
我使用 Azure DevOps 构建了它,并从那里直接发布到 Azure Web App for Container。
此 YAML 用于生成图像:
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- master
resources:
- repo: self
variables:
tag: '$(Build.BuildId)'
BuildConfiguration: Release
stages:
- stage: Build
displayName: Build image
jobs:
- job: Build
displayName: Build
pool:
name: 'Azure Pool inside Network Linux'
vmImage: 'ubuntu-latest'
steps:
- task: UseDotNet@2
displayName: Install .Net Core 3.0
inputs:
packageType: 'sdk'
version: '3.0.x'
includePreviewVersions: false
- task: DotNetCoreCLI@2
displayName: Restore packages
inputs:
command: 'restore'
projects: '**/*.csproj'
feedsToUse: 'select'
vstsFeed: '8187f5c9-e9c1-419f-8a5c-98285cf7633c'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: 'build'
arguments: '--configuration $(BuildConfiguration)'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: 'publish'
publishWebProjects: false
projects: '**/NetCoreBoilerplate.WebApi.csproj'
arguments: '--configuration $(BuildConfiguration)'
zipAfterPublish: false
modifyOutputPath: false
- task: Docker@2
displayName: Build an image
inputs:
command: buildAndPush
containerRegistry: 'ContainerRegistry'
repository: 'NetBoilerPlate'
buildContext: '$(Build.SourcesDirectory)/src/NetCoreBoilerplate.WebApi/bin/$(BuildConfiguration)/netcoreapp3.0/'
dockerfile: '$(Build.SourcesDirectory)/tools/docker/Dockerfile'
tags: |
$(tag)
还有这个 Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
RUN useradd --create-home -s /bin/bash user
WORKDIR /home/user
USER user
ENV APP_HOME /home/user/app
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000
COPY publish .
ENTRYPOINT ["dotnet", "NetCoreBoilerplate.WebApi.dll"]
应用程序在本地运行正常,但当我将其部署到 Azure 时,我在日志中发现了这个错误。
2019-10-02T14:20:43.177686408Z It was not possible to find any compatible framework version
2019-10-02T14:20:43.178398914Z The specified framework 'Microsoft.AspNetCore.App', version '3.0.0' was not found.
2019-10-02T14:20:43.178667416Z - The following frameworks were found:
2019-10-02T14:20:43.178867518Z 3.0.0-preview8.19405.7 at [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2019-10-02T14:20:43.178936019Z
2019-10-02T14:20:43.179157321Z You can resolve the problem by installing the specified framework and/or SDK.
2019-10-02T14:20:43.179240321Z
2019-10-02T14:20:43.179425023Z The .NET Core frameworks can be found at:
2019-10-02T14:20:43.179548024Z - https://aka.ms/dotnet-download
知道哪里出了问题吗?
是的,我终于通过更改 dockerfile 中的原始图像解决了这个问题
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS base
我有一个针对 ASP.NET Core 3.0 的应用程序。
我使用 Azure DevOps 构建了它,并从那里直接发布到 Azure Web App for Container。 此 YAML 用于生成图像:
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- master
resources:
- repo: self
variables:
tag: '$(Build.BuildId)'
BuildConfiguration: Release
stages:
- stage: Build
displayName: Build image
jobs:
- job: Build
displayName: Build
pool:
name: 'Azure Pool inside Network Linux'
vmImage: 'ubuntu-latest'
steps:
- task: UseDotNet@2
displayName: Install .Net Core 3.0
inputs:
packageType: 'sdk'
version: '3.0.x'
includePreviewVersions: false
- task: DotNetCoreCLI@2
displayName: Restore packages
inputs:
command: 'restore'
projects: '**/*.csproj'
feedsToUse: 'select'
vstsFeed: '8187f5c9-e9c1-419f-8a5c-98285cf7633c'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: 'build'
arguments: '--configuration $(BuildConfiguration)'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: 'publish'
publishWebProjects: false
projects: '**/NetCoreBoilerplate.WebApi.csproj'
arguments: '--configuration $(BuildConfiguration)'
zipAfterPublish: false
modifyOutputPath: false
- task: Docker@2
displayName: Build an image
inputs:
command: buildAndPush
containerRegistry: 'ContainerRegistry'
repository: 'NetBoilerPlate'
buildContext: '$(Build.SourcesDirectory)/src/NetCoreBoilerplate.WebApi/bin/$(BuildConfiguration)/netcoreapp3.0/'
dockerfile: '$(Build.SourcesDirectory)/tools/docker/Dockerfile'
tags: |
$(tag)
还有这个 Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
RUN useradd --create-home -s /bin/bash user
WORKDIR /home/user
USER user
ENV APP_HOME /home/user/app
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000
COPY publish .
ENTRYPOINT ["dotnet", "NetCoreBoilerplate.WebApi.dll"]
应用程序在本地运行正常,但当我将其部署到 Azure 时,我在日志中发现了这个错误。
2019-10-02T14:20:43.177686408Z It was not possible to find any compatible framework version
2019-10-02T14:20:43.178398914Z The specified framework 'Microsoft.AspNetCore.App', version '3.0.0' was not found.
2019-10-02T14:20:43.178667416Z - The following frameworks were found:
2019-10-02T14:20:43.178867518Z 3.0.0-preview8.19405.7 at [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2019-10-02T14:20:43.178936019Z
2019-10-02T14:20:43.179157321Z You can resolve the problem by installing the specified framework and/or SDK.
2019-10-02T14:20:43.179240321Z
2019-10-02T14:20:43.179425023Z The .NET Core frameworks can be found at:
2019-10-02T14:20:43.179548024Z - https://aka.ms/dotnet-download
知道哪里出了问题吗?
是的,我终于通过更改 dockerfile 中的原始图像解决了这个问题
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS base