не удается успешно перенаправить ssh в контейнер docker в mac os big sur

#macos #docker #ssh #docker-compose #macos-big-sur

Вопрос:

Я использую docker-compose и у меня есть контейнер, который извлекается из некоторых частных репозиториев git, поэтому мне нужно перенаправить SSH-агент хоста в этот контейнер. При разработке на машине с Ubuntu 20.04 я использую эту конфигурацию, и она работает просто идеально:

 services:
  the_service:
    ...
    environment:
      # NOTE set to a path where we mount host's ssh auth socket
      SSH_AUTH_SOCK: /ssh-agent
    volumes:
      # NOTE mount host's ssh auth socket to be able to access private git repo
      # from within container. this way container uses host's ssh keys.
      - ${SSH_AUTH_SOCK}:/ssh-agent
      - ./fe:/app
    ...
 

Но на машине с mac OS Big Sur я получаю ошибку внутри контейнера при извлечении: permission denied (public key) check if you have correct access rights . Я провел некоторое расследование и обнаружил, что при выполнении ssh-add -l внутри контейнера я получаю ошибку connection refused . Если я правильно понимаю, пересылка сокета SSH завершается сбоем и ssh-add не может подключиться к агенту SSH.

Единственное решение, которое мне удалось найти, — это смонтировать /run/host-services/ssh-auth.sock вместо пути, содержащегося в переменной SSH_AUTH_SOCK среды, но проблема в том, что /run в моей Mac OS нет каталога…

Как решить эту проблему? Может ли кто-нибудь подтвердить, что перенаправление SSH-сокета в docker на mac OS Big Sur работает?

Комментарии:

1. Оказывается, монтирование /run/host-services/ssh-auth.sock работает, потому что, хотя путь не существует в файловой системе хоста, он действует как своего рода волшебная инструкция для docker, и затем он знает, что делать.