tl;dr
Dockerfile
# syntax=docker/dockerfile:experimental
FROM continuumio/miniconda3
RUN --mount=type=ssh pip install git+ssh://git@github.com/myrepo/myproject.git@develop
RUN conda install numpy
...
Note: the comment on the first line is required voodoo
Then build your docker image with:
DOCKER_BUILDKIT=1 docker build --ssh default -t my_image .
With this, you will be able to use the --mount
option for the RUN
directive in your Dockerfile.
Long answer
As found in the documentation here, ssh forwarding when building docker image is enabled only when using the BuildKit backend:
External implementation features
This feature is only available when using the
BuildKit
backend.Docker build supports experimental features like cache mounts, build
secrets and ssh forwarding that are enabled by using an external
implementation of the builder with a syntax directive. To learn about
these features, refer to the documentation in BuildKit
repository.
For this you need Docker 18.09 (or later) and you also need to run the docker build
command with the DOCKER_BUILDKIT=1
environment variable and start your Docker file with the following magic comment : # syntax=docker/dockerfile:experimental
.
Also you can edit /etc/docker/daemon.json
and add :
{
"experimental" : false,
"debug" : true,
"features": {
"buildkit" : true
}
}