【发布时间】:2020-11-28 21:01:41
【问题描述】:
我有工作的 Dockerfile 内容
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY ./Honda.Domain/Honda.Domain.csproj ./Honda.Domain/
COPY ./Honda.API/Honda.API.csproj Honda.API/
RUN dotnet restore Honda.API/Honda.API.csproj
# copy everything else and build app
COPY . ./
WORKDIR /app/Honda.API/
RUN dotnet publish -c Release -o publish/
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build /app/Honda.API/publish .
ENV ASPNETCORE_URLS=https://+:5001;http://+:5000
ENTRYPOINT ["dotnet", "Honda.API.dll"]
但是当我尝试使用 alpine 图像而不是 aspnet:3.1 优化图像时
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY ./Honda.Domain/Honda.Domain.csproj ./Honda.Domain/
COPY ./Honda.API/Honda.API.csproj Honda.API/
RUN dotnet restore Honda.API/Honda.API.csproj
# copy everything else and build app
COPY . ./
WORKDIR /app/Honda.API/
RUN dotnet publish -c Release -o publish/
FROM alpine:3.9.4 #**************************** change 1 ***************
# Add some libs required by .NET runtime
RUN apk add --no-cache libstdc++ libintl icu #* change 2***************
WORKDIR /app
COPY --from=build /app/Honda.API/publish .
ENV ASPNETCORE_URLS=https://+:5001;http://+:5000
ENTRYPOINT ["dotnet", "Honda.API.dll"]
但第二张图片我在docker-compose up --build 上遇到错误
错误:对于 honda-api 无法启动服务 honda-api:OCI 运行时创建失败:container_linux.go:349:启动容器 进程导致“exec:”dotnet“:$PATH 中找不到可执行文件”: 未知错误:启动项目时遇到错误。
有什么想法吗?
【问题讨论】:
-
你在 alpine 容器中安装了 dotnet sdk 吗?此外,Microsoft 提供了带有 aspnet 运行时的预构建 alpine 图像:hub.docker.com/_/microsoft-dotnet-aspnet