FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /src COPY ["DockerRedisLab/DockerRedisLab.csproj", "DockerRedisLab/"] RUN dotnet restore "DockerRedisLab/DockerRedisLab.csproj" COPY . . WORKDIR "/src/DockerRedisLab" RUN dotnet build "DockerRedisLab.csproj" -c Release -o /app/build
FROM build AS publish RUN dotnet publish "DockerRedisLab.csproj" -c Release -o /app/publish
FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "DockerRedisLab.dll"]
特別注意 , 預設用 visual studio 在專案點右鍵 Open Folder in File Explorer 如果執行 docker build 一定會出現以下錯誤
1 2 3 4
#目前位置 #C:\Users\YourName\source\repos\DockerRedisLab\DockerRedisLab => ERROR [build 3/7] COPY [DockerRedisLab/DockerRedisLab.csproj, DockerRedisLab/] failed to compute cache key: "/DockerRedisLab/DockerRedisLab.csproj" not found: not found
#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:5.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /src COPY ["DockerRedisLab/DockerRedisLab.csproj", "DockerRedisLab/"] RUN dotnet restore "DockerRedisLab/DockerRedisLab.csproj" COPY . . WORKDIR "/src/DockerRedisLab" RUN dotnet build "DockerRedisLab.csproj" -c Release -o /app/build
FROM build AS publish RUN dotnet publish "DockerRedisLab.csproj" -c Release -o /app/publish
FROM base AS final WORKDIR /app COPY --from=publish /app/publish . #這兩行是自己加上去的 RUN apt update RUN apt install -y curl RUN apt install -y vim ENTRYPOINT ["dotnet", "DockerRedisLab.dll"]