我有一个像这样开头的 Docker 文件:
ARG FILE_PATH
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["${FILE_PATH}/src/NuGet.config", "src/"]
我像这样使用 azure-cli 调用它:
$pathToSrc = "$(Build.SourcesDirectory)/My folder"
az acr build --build-arg "FILE_PATH=$pathToSrc" ...
这总是失败并显示以下消息:
复制失败:在构建上下文中找不到文件或被 .dockerignore 排除:stat src/NuGet.config:文件不存在
我尝试过变体,例如:
COPY [$FILE_PATH/src/NuGet.config, "src/"]
COPY ["FILE_PATH/src/NuGet.config", "src/"]
和
az acr build --build-arg "FILE_PATH='$pathToSrc'" ...
但总是以相同的信息结束。
有没有办法做到这一点。我在 Azure-devops 管道中的托管代理上运行。任务是 task:AzureCLI@2,使用 PowerShell Core 脚本。
这可能是相关的:https : //stackoverflow.com/a/56748289/4424236
...在每个
FROM
语句之后,所有ARG
s 都被收集并且不再可用。多阶段构建要小心。
尝试这个:
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
ARG FILE_PATH
COPY ["${FILE_PATH}/src/NuGet.config", "src/"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句