【问题标题】:Docker build is different between docker desktop and Azure PipelinesDocker 构建在 docker desktop 和 Azure Pipelines 之间是不同的
【发布时间】:2021-09-01 20:37:01
【问题描述】:

我有一个简单的 dockerfile,我试图将 vc_redist 注入到容器中,当我使用 docker desktop 构建图像时,我的应用程序运行正常,但是当我在 Azure Pipeline 中构建相同的图像并从 Azure 容器中提取该图像时注册表我缺少 vc_redist 层。为什么使用 docker desktop 和 Azure Pipeline Tasks 构建映像有区别?这是我的 dockerfile 的示例

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 AS base
WORKDIR /app

USER ContainerAdministrator
ADD https://download.visualstudio.microsoft.com/download/pr/9fbed7c7-7012-4cc0-a0a3-a541f51981b5/e7eec15278b4473e26d7e32cef53a34c/vc_redist.x64.exe /vc_redist.x64.exe 
RUN /vc_redist.x64.exe /norestart /install /quiet
RUN del /vc_redist.x64.exe

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS build
WORKDIR /src
RUN dotnet restore .....
COPY . .
RUN dotnet build ....

FROM build AS publish
RUN dotnet publish ...

FROM base AS runtime
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["myapp.exe"]

【问题讨论】:

  • 您使用的是windows还是linux代理?你确定吗
  • windows 容器
  • 但是你的 devops 代理,他们也是 windows 吗?

标签: docker azure-devops dockerfile


【解决方案1】:

您的网址在此处不起作用。 (它可能是一个仅用于您的 IP 或基于时间的私有 URL)

https://github.com/microsoft/dotnet-framework-docker/issues/15

他使用了一个有效的 Microsoft 下载链接

https://download.microsoft.com 当您使用 Visual Studio 链接时https://download.visualstudio.microsoft.com/

我建议下载安装程序并将其重新上传到 gist 或 GitHub,或者只是将文件本身添加到 docker

【讨论】:

  • vc_redist 的链接很好,将它复制到任何浏览器并下载,此外,就像我发布的那样,它在使用 docker 桌面构建时构建和运行都很好。问题是当使用 docker 管道任务时 vc_redist 正在从最终容器中删除
猜你喜欢
  • 2019-09-25
  • 2021-12-07
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
相关资源
最近更新 更多