我有一个 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
当我们从我们的私有存储库 pip 安装东西时,我们使用该标志告诉 buildkit 在此处使用 ssh 密钥。当您使用 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 忽略这些标志吗?