gpt4 book ai didi

docker - 正常构建时如何忽略docker buildkit标志

转载 作者:行者123 更新时间:2023-12-02 18:57:45 24 4
gpt4 key购买 nike

我有一个 docker 容器,我想用 buildkit 构建它有时使用标准 docker build 其他时间。假设我们有一个容器,例如:

# syntax=docker/dockerfile:experimental
FROM python:3.8

# Install all necessary libraries into a pyenv environment
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
RUN --mount=type=ssh pip install -r api-requirements.txt
我们使用 --mount=type=ssh当我们从我们的私有(private)存储库安装东西时,标记告诉 buildkit 在此处使用 ssh key 。当您使用 Buildkit 使用以下命令进行构建时,一切正常:
ssh-add && cd api && DOCKER_BUILDKIT=1 docker build --no-cache --ssh default -t image-name .
但是,我们不能再使用标准 docker 命令构建这个容器,例如:
docker build -t image-name .
因为 --mount标志无法识别。无论如何都可以使用相同的 Dockerfile 而不用 buildkit 和通常编辑它?可以告诉 Docker 忽略这些标志吗?

最佳答案

有一个open RFC issue为此考虑忽略未知标志的方法是否有用。但是,为任何未知标志自动执行此操作可能会导致比修复更多的损坏。例如,通过挂载 ssh 凭据,如果没有凭据,构建很可能会失败。
在这种情况下,建议要么为具有所有功能的基于 buildkit 的构建维护一个单独的 Dockerfile,并手动保持它们同步,要么插入使用 buildkit 或经典构建器完成所有构建,但不能同时使用两者。

关于docker - 正常构建时如何忽略docker buildkit标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64472973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com