/bin/sh: [./Filename]: not found


FROM mcr.microsoft.com/dotnet/runtime:6.0-alpine as base
WORKDIR /app
RUN apk add --no-cache ca-certificates icu-libs
RUN apk add --no-cache tzdata
RUN apk add --no-cache bash
ENV TZ=America/Chicago
#This will update the image to avoid security issues.
RUN apk update
RUN apk upgrade
RUN apk add bash
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
WORKDIR /src
COPY ["Filename/Filename.csproj", "Filename/"]

RUN dotnet restore "Filename/Filename.csproj" --configfile NuGet.Config 
COPY . .
WORKDIR "/src/Filename"
RUN dotnet build "Filename.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Filename.csproj" -c Release -o /app/publish  --runtime alpine-x64 --self-contained true /p:PublishTrimmed=true /p:PublishSingleFile=true
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
#ENTRYPOINT ["dotnet", "Filename.dll"]
ENTRYPOINT [./"Filename"]
我有一个使用Dotnet 6.0的控制台应用程序。我的dockerfile脚本构建成功,但是,它在运行时部署到服务器时失败,错误:/bin/sh:[。/Filename]: not found

我的图像运行良好,当它是dotnetcore 3.1和脚本runtime-deps:3.1-alpine作为基础。那么,为什么在dotnet 6.0中还需要/bin/sh:呢?如何解决这个问题?如有任何帮助,不胜感激。

更改dockerfile末尾的入口点:

ENTRYPOINT ["./Filename"]

更新你的dockerfile,你可以使用它,它将解决问题…!!

FROM mcr.microsoft.com/dotnet/runtime:6.0-alpine as base
WORKDIR /app
RUN apk add --no-cache ca-certificates icu-libs
RUN apk add --no-cache tzdata
RUN apk add --no-cache bash
ENV TZ=America/Chicago
#This will update the image to avoid security issues.
RUN apk update
RUN apk upgrade
RUN apk add bash
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
WORKDIR /src
COPY ["Filename/Filename.csproj", "Filename/"]

RUN dotnet restore "Filename/Filename.csproj" --configfile NuGet.Config 
COPY . .
WORKDIR "/src/Filename"
RUN dotnet build "Filename.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Filename.csproj" -c Release -o /app/publish  --runtime alpine-x64 --self-contained true /p:PublishTrimmed=true /p:PublishSingleFile=true
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
EXPOSE portnumber
ENV ASPNETCORE_URLS http://*:portnumber
ENTRYPOINT ["dotnet", "Filename.dll"]

最新更新