"can be used to bind
files from other part of the build without copying"</em>.</p>
We use it like so:</p>
#</span> syntax=docker/dockerfile:1.2</span></span>
FROM</span> python:3.10 </span>AS</span> build</span></span>
COPY</span> requirements.txt .</span></span>
RUN</span> pip wheel -r requirements.txt \</span></span>
--wheel-dir /whl \</span></span>
--no-cache-dir</span></span>
</span>
FROM</span> python:3.10-slim</span></span>
RUN</span> --mount=type=bind,target=/whl,source=/whl,from=build \</span></span>
pip install --no-deps /whl/*.whl</span></span></code></pre>
We can build this image:</p>
❯</span> DOCKER_BUILDKIT</span>=</span>1</span> docker</span> build</span> -</span>-no-cache</span> -</span>t</span> python-with-mount</span> .</span></span>
[+] Building 22.6s (15/15) FINISHED</span></span>
=> [internal] load build definition from mount.Dockerfile 0.0s</span></span>
=> => transferring dockerfile: 43B 0.0s</span></span>
=> [internal] load .dockerignore 0.0s</span></span>
=> => transferring context: 2B 0.0s</span></span>
=> resolve image config for docker.io/docker/dockerfile:1.3 0.6s</span></span>
=> CACHED docker-image://docker.io/docker/dockerfile:1.3@sha256:42399d4635edd 0.0s</span></span>
=> [internal] load build definition from mount.Dockerfile 0.0s</span></span>
=> [internal] load .dockerignore 0.0s</span></span>
=> [internal] load metadata for docker.io/library/python:3.10-slim 0.0s</span></span>
=> [internal] load metadata for docker.io/library/python:3.10 0.0s</span></span>
=> [internal] load build context 0.0s</span></span>
=> => transferring context: 37B 0.0s</span></span>
=> CACHED [stage-1 1/2] FROM docker.io/library/python:3.10-slim 0.0s</span></span>
=> CACHED [build 1/3] FROM docker.io/library/python:3.10 0.0s</span></span>
=> [build 2/3] COPY requirements.txt . 0.0s</span></span>
=> [build 3/3] RUN pip wheel -r requirements.txt --wheel-dir /whl --n 9.7s</span></span>
=> [stage-1 2/2] RUN --mount=type=bind,target=/whl,source=/whl,from=build 9.2s</span></span>
=> exporting to image 2.1s</span></span>
=> => exporting layers 2.0s</span></span>
=> => writing image sha256:1d677e47533d54467300be2c1b4898cb7b5d07b539877c2f07 0.0s</span></span>
=> => naming to docker.io/library/python-with-mount 0.0s</span></span></code></pre>
And inspect its layers:</p>
❯</span> docker history python-with-mount</span></span>
IMAGE CREATED CREATED BY SIZE COMMENT</span></span>
1d677e47533d 59 seconds ago RUN /bin/sh -c pip install --no-deps /whl/*.… 127MB buildkit.dockerfile.v0</span></span>
<missing> 2 weeks ago /bin/sh -c #(nop) CMD ["python3"] 0B</span></span>
<missing> 2 weeks ago /bin/sh -c set -ex; savedAptMark="$(apt-ma… 9.51MB</span></span>
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PYTHON_GET_PIP_SHA256… 0B</span></span>
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PYTHON_GET_PIP_URL=ht… 0B</span></span>