如何在没有 docker 文件的 docker 图像上安装证书?
How to install certificates on docker images without dockerfile?
我的中间件团队在 azure devops 上有一个管道,它定期从 docker hub 中提取一堆图像并将其重新发布到我们的私有存储库中。
我想改变管道,不仅要 copy/paste 图像,还要安装我们的 CA 根证书。
发布管道包含 3 个步骤:
- 一堆
docker pull RemoteRepository.com/image:latest
docker tag RemoteRepository.com/image:latest InternalACR.io/image:latest
docker push InternalACR.io/image:latest
因为没有 dockerfile
涉及,我想知道是否可以保持这种状态。
此处推荐的方法是什么?
好吧...我实际上没有在没有 dockerfile 的情况下这样做,但我创建了一个模板文件并在管道上循环。像这样:
最简单和推荐的方法是使用 Dockerfile。获取现有容器然后对其进行修改以创建新容器是一项简单的任务。
示例:
FROM mcr.microsoft.com/dotnet/#{baseImage}# AS base
COPY RootCA-1.crt /usr/local/share/ca-certificates/
COPY RootCA-SubCA-1.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
您还可以 运行 现有容器,在容器处于 运行 状态时对其进行修改。然后您可以将更改提交到新容器。
示例命令:
docker exec ...
docker cp ...
docker commit ...
有关 Azure Pipeline 的其他技术,请参阅此答案:
我的中间件团队在 azure devops 上有一个管道,它定期从 docker hub 中提取一堆图像并将其重新发布到我们的私有存储库中。
我想改变管道,不仅要 copy/paste 图像,还要安装我们的 CA 根证书。
发布管道包含 3 个步骤:
- 一堆
docker pull RemoteRepository.com/image:latest
docker tag RemoteRepository.com/image:latest InternalACR.io/image:latest
docker push InternalACR.io/image:latest
因为没有 dockerfile
涉及,我想知道是否可以保持这种状态。
此处推荐的方法是什么?
好吧...我实际上没有在没有 dockerfile 的情况下这样做,但我创建了一个模板文件并在管道上循环。像这样:
最简单和推荐的方法是使用 Dockerfile。获取现有容器然后对其进行修改以创建新容器是一项简单的任务。
示例:
FROM mcr.microsoft.com/dotnet/#{baseImage}# AS base
COPY RootCA-1.crt /usr/local/share/ca-certificates/
COPY RootCA-SubCA-1.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
您还可以 运行 现有容器,在容器处于 运行 状态时对其进行修改。然后您可以将更改提交到新容器。
示例命令:
docker exec ...
docker cp ...
docker commit ...
有关 Azure Pipeline 的其他技术,请参阅此答案: