如何修复使用 Docker 构建的 Azure DevOps 构建中的 "Access to the path csproj.nuget.g.props is denied" 错误?
How to fix an "Access to the path csproj.nuget.g.props is denied" error in Azure DevOps build with Docker Build?
我正在使用 Docker 图像在 Azure DevOps 中设置一个 buid,但遇到了一些问题。我的 docker 构建命令在本地和 Azure DevOps 构建机器中不起作用。
在本地,该命令抛出此错误:
C:\Program Files\dotnet\sdk.2.401\NuGet.targets(123,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\app\src\WebApi\WebApi.csproj]
C:\Program Files\dotnet\sdk.2.401\NuGet.targets(123,5): error : No such host is known [C:\app\src\WebApi\WebApi.csproj]
The command 'cmd /S /C dotnet restore src/WebApi/WebApi.csproj' returned a non-zero code: 1
并且在 Azure DevOps 中出现此错误:
C:\Program Files\dotnet\sdk.2.401\NuGet.targets(123,5): error : Access to the path 'C:\app\src\Bll\obj\Bll.csproj.nuget.g.props' is denied. [C:\app\src\WebApi\WebApi.csproj]
The command 'cmd /S /C dotnet restore src/WebApi/WebApi.csproj' returned a non-zero code: 1
##[error]The process 'C:\Program Files\Docker\docker.exe' failed with exit code 1
我尝试重新启动 Docker 服务并关闭自动 windows 代理配置。问题出在我的本地机器上,它无法到达 url。因此,我尝试在 Azure DevOps 中构建我的 docker 文件。而且我不明白为什么还原步骤也因权限错误而失败。
我在 Google 上搜索了解决方案,但没有找到。
我的docker文件:
# STAGE01 - Build application and its dependencies
FROM microsoft/dotnet:2.2-sdk AS build-env
WORKDIR /app
COPY src/**/*.csproj ./
COPY . ./
RUN dotnet restore .\Authentication.sln
# STAGE02 - Publish the application
FROM build-env AS publish
RUN dotnet publish -c Release -o /app
# STAGE03 - Create the final image
FROM microsoft/dotnet:2.2.0-aspnetcore-runtime
WORKDIR /app
LABEL Author="Tango"
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApi.dll", "--server.urls", "http://*:80"]
解决方案文件夹结构:
.sln
dockerfile
src /
-- Dal /
---- Dal.csproj
-- Bll /
---- Bll.csproj
-- WebApi /
---- WebApi.csproj
我错过了什么?
App 文件夹在我的 git 存储库中被跟踪,我将其删除。有效。
我正在使用 Docker 图像在 Azure DevOps 中设置一个 buid,但遇到了一些问题。我的 docker 构建命令在本地和 Azure DevOps 构建机器中不起作用。 在本地,该命令抛出此错误:
C:\Program Files\dotnet\sdk.2.401\NuGet.targets(123,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\app\src\WebApi\WebApi.csproj]
C:\Program Files\dotnet\sdk.2.401\NuGet.targets(123,5): error : No such host is known [C:\app\src\WebApi\WebApi.csproj]
The command 'cmd /S /C dotnet restore src/WebApi/WebApi.csproj' returned a non-zero code: 1
并且在 Azure DevOps 中出现此错误:
C:\Program Files\dotnet\sdk.2.401\NuGet.targets(123,5): error : Access to the path 'C:\app\src\Bll\obj\Bll.csproj.nuget.g.props' is denied. [C:\app\src\WebApi\WebApi.csproj]
The command 'cmd /S /C dotnet restore src/WebApi/WebApi.csproj' returned a non-zero code: 1
##[error]The process 'C:\Program Files\Docker\docker.exe' failed with exit code 1
我尝试重新启动 Docker 服务并关闭自动 windows 代理配置。问题出在我的本地机器上,它无法到达 url。因此,我尝试在 Azure DevOps 中构建我的 docker 文件。而且我不明白为什么还原步骤也因权限错误而失败。 我在 Google 上搜索了解决方案,但没有找到。
我的docker文件:
# STAGE01 - Build application and its dependencies
FROM microsoft/dotnet:2.2-sdk AS build-env
WORKDIR /app
COPY src/**/*.csproj ./
COPY . ./
RUN dotnet restore .\Authentication.sln
# STAGE02 - Publish the application
FROM build-env AS publish
RUN dotnet publish -c Release -o /app
# STAGE03 - Create the final image
FROM microsoft/dotnet:2.2.0-aspnetcore-runtime
WORKDIR /app
LABEL Author="Tango"
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApi.dll", "--server.urls", "http://*:80"]
解决方案文件夹结构:
.sln dockerfile src / -- Dal / ---- Dal.csproj -- Bll / ---- Bll.csproj -- WebApi / ---- WebApi.csproj
我错过了什么?
App 文件夹在我的 git 存储库中被跟踪,我将其删除。有效。