Docker Compose: невозможно запустить ssh: нет такого файла или каталога

Я пытаюсь использовать docker-compose для извлечения, сборки и запуска нескольких сервисов из их репозиториев git. Я сделал простой docker-compose.yml, чтобы проверить его:

version: '3'

services:
  test-service:
    build: [email protected]:dan-poltherm/partservicego.git
    ports:
      - 8005:443

Кажется, что docker-compose не может получить репозиторий. Я получаю следующую ошибку при вызове docker-compose up --build:

ERROR: error fetching: fatal: cannot run ssh: No such file or directory

У меня установлен OpenSSH Client (порт Windows 10) и %SYSTEMROOT%\System32\OpenSSH\ добавлен в PATH, я также установил GIT_SSH на C:\Windows\System32\OpenSSH\ssh.exe. Я могу клонировать репо с git clone, а ssh также работает с PowerShell.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
2 999
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Насколько я знаю, "строить:" - это путь, по которому находится ваш Dockerfile.

Я бы посоветовал проверить репозиторий и поместить в папку docker-compose.yml.

Затем измените свой docker-compose.yml на:

version: '3'

services:
  test-service:
    build: .
    ports:
      - 8005:443

Из документов (https://docs.docker.com/compose/compose-file/):

build can be specified either as a string containing a path to the build context:

"build" может указывать на URL-адрес того, что я знаю (github.com/docker/compose/pull/2430). Я мог бы вытащить каждое репо индивидуально, если бы у меня было 2 из них, но поддержание 10 из них в актуальном состоянии было бы раздражающим, а что, если бы у меня было больше? Это было бы крайне неэффективно.

K. Kowalczyk 10.10.2018 10:31
Ответ принят как подходящий

Токен персонального доступа - это способ пойти

Репозиторий является частным, поэтому мне пришлось бы либо: включить мои логин и пароль gitlab в файл compose, что я, очевидно, не могу сделать, либо поместить их в переменную env, чего я тоже не должен делать. Мой ssh-агент работает как служба, поэтому я хочу получить доступ к репо с помощью ssh.

K. Kowalczyk 10.10.2018 10:25

Что это за вариант использования? Если вы запускаете докер для разработки только на своем компьютере, просто используйте некоторую переменную окружения. Если вы передадите его кому-то еще как изображение, он увидит содержимое частного репо. Если вы используете его для развертывания, возможно, используйте токен личного доступа. p.s. vsupalov.com/build-docker-image-clone-private-repo-ssh-key

Pari 10.10.2018 11:14

Я использую докер как для разработки, так и для развертывания, у меня есть несколько микросервисов, и я хочу иметь возможность запускать каждый отдельно, в основном для простоты разработки, поэтому я не хочу извлекать их из своих репозиториев в Dockerfile, потому что в В этом случае мне пришлось бы включать несколько необходимых файлов Docker во все возможные конфигурации разработки. Токен доступа, предоставляемый через переменную env, звучит как хороший вариант.

K. Kowalczyk 10.10.2018 11:32

Я протестировал токен доступа, и он работает очень хорошо. Если вы отредактируете свой ответ, чтобы использовать токен доступа, я с радостью его приму. Большое спасибо.

K. Kowalczyk 10.10.2018 11:52

Другие вопросы по теме