【发布时间】:2021-02-04 22:09:30
【问题描述】:
我有一个 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 标志告诉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 忽略这些标志吗?
【问题讨论】: