问题描述: 在使用Git Actions构建ASP.NET Core 3.1 docker image时,拷贝文件的操作COPY失败。
问题分析: git clone操作时可能缺失文件或者文件权限导致COPY操作失败。
解决方案: 在使用COPY操作前增加指定文件路径和权限的操作。
示例代码:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY MyProject.sln .
COPY MyProject/MyProject.csproj ./MyProject/
RUN dotnet restore
COPY . .
RUN dotnet publish MyProject.csproj -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
#这里增加指定路径和权限的操作
RUN chmod +x ./MyProject
ENTRYPOINT ["dotnet", "MyProject.dll"]
在增加了指定路径和权限的操作后,再次执行COPY操作即可顺利构建ASP.NET Core 3.1 docker image。