Я пытаюсь использовать 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.





Насколько я знаю, "строить:" - это путь, по которому находится ваш 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:
Токен персонального доступа - это способ пойти
Репозиторий является частным, поэтому мне пришлось бы либо: включить мои логин и пароль gitlab в файл compose, что я, очевидно, не могу сделать, либо поместить их в переменную env, чего я тоже не должен делать. Мой ssh-агент работает как служба, поэтому я хочу получить доступ к репо с помощью ssh.
Что это за вариант использования? Если вы запускаете докер для разработки только на своем компьютере, просто используйте некоторую переменную окружения. Если вы передадите его кому-то еще как изображение, он увидит содержимое частного репо. Если вы используете его для развертывания, возможно, используйте токен личного доступа. p.s. vsupalov.com/build-docker-image-clone-private-repo-ssh-key
Я использую докер как для разработки, так и для развертывания, у меня есть несколько микросервисов, и я хочу иметь возможность запускать каждый отдельно, в основном для простоты разработки, поэтому я не хочу извлекать их из своих репозиториев в Dockerfile, потому что в В этом случае мне пришлось бы включать несколько необходимых файлов Docker во все возможные конфигурации разработки. Токен доступа, предоставляемый через переменную env, звучит как хороший вариант.
Я протестировал токен доступа, и он работает очень хорошо. Если вы отредактируете свой ответ, чтобы использовать токен доступа, я с радостью его приму. Большое спасибо.
"build" может указывать на URL-адрес того, что я знаю (github.com/docker/compose/pull/2430). Я мог бы вытащить каждое репо индивидуально, если бы у меня было 2 из них, но поддержание 10 из них в актуальном состоянии было бы раздражающим, а что, если бы у меня было больше? Это было бы крайне неэффективно.