在 DockerFile 的文件路径中插入字符串

SBFrancies

我有一个像这样开头的 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语句之后,所有ARGs 都被收集并且不再可用。多阶段构建要小心。

尝试这个:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章