SSH agent key is not visible/forwarded to Windows Docker container

Viewed 34

I am trying to use Windows Docker to build a docker image. When building the docker image, it will invoke pip to access remote private GitHub repositories. However, it always returned this error message: git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. It seems that the SSH agent key is not forwarded to Windows Docker container. I run it in Git Bash Windows.

My device information is:

  • Windows Version: Windows11
  • Docker Desktop Version: Docker Desktop 4.12.0 (85629)
  • WSL2 or Hyper-V backend? WSL2 backend

The main part of the Docker file is:

FROM python:3.8.13 as builder
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
RUN mkdir -p /home/app/
COPY requirements.txt /requirements.txt
RUN --mount=type=ssh pip install -r /requirements.txt --target

Then, running following commands to build the docker image:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
docker build --ssh default .

When runningRUN --mount=type=ssh pip install -r /requirements.txt --target, the pip needs to access to private GitHub repositories and install them in docker image. But it always returned the permission denied error above - it seems that the ssh agent key is not visible/forwarded in docker container. I actually have already created a SSH key and added it to my GitHub.

I am just wondering if I missed something? Or it may be an underlying issue with Windows Docker? Thank you!

0 Answers
Related