URL-адрес сборки репозитория Git с помощью Docker compose

0

Вопрос

Я пытаюсь использовать URL-адрес репозитория git в своем docker-compose.yml файл, как описано здесь. Сервис выглядит так:

  app:
    build: "https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git#develop"

Я получаю следующую ошибку:

$ docker-compose up
[+] Running 0/1
 ⠿ app Error                                                                   0.5s
[+] Building 0.0s (1/1) FINISHED                                                    
 => CACHED [internal] load git source https://[MY_GITHUB_OAUTH_TOKEN]  0.0s
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount730635615/https:/[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git#develop/Dockerfile: no such file or directory

НО, когда я копирую точный URL-адрес с моего docker-compose.yml файл, я могу успешно использовать его при сборке Docker. Я могу видеть все этапы Dockerfile быть казненным.

$ docker build https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git#develop

Есть develop ветка, [MY_GITHUB_OAUTH_TOKEN] является ли мой фактический токен GitHub, и есть действительный Dockerfile (с большой буквы D) в корне РЕПО. Почему это должно работать с docker build но не docker-compose? Это не может быть проблемой с токеном, так как он работает с docker build.

Если это имеет значение, я на Mac M1 с установленным Docker для Mac. docker-compose отлично работает с другими службами.

docker docker-compose dockerfile git
2021-11-23 21:23:34
1

Лучший ответ

0

Попробуйте# - удаление двойных кавычек

  app:
    build: https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git#develop

или это с двойными кавычками или без них

  app:
    build:
      context: https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git#develop

или это с двойными кавычками или без них

  app:
    build:
      context: https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git#develop
      dockerfile: Dockerfile
2021-11-28 04:50:47

Спасибо за ответ. Та же ошибка, что и в посте со всеми 3, к сожалению.
Jacob Stein

Как насчет следующего: 1) установить SSH на свой контейнер как часть настройки сборки, 2) установить SSH разрешения между вашим Mac и Git РЕПО, 3) в рамках докер сочинять настроить подключить каталог, где ваш SSH id_rsa ключ находится в томе с контейнерами СШ Дира 4) Используйте '[email protected]/org/repo.git#develop как построить свой конфиг. Таким образом, мы можем увидеть, является ли это проблемой с конфигурацией docker compose / mac / git или связано ли это с использованием токена oauth в docker compose
djmonki

Будем делать. Я также упомяну, когда я просто использую git clone https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git это работает нормально, но у меня есть настройка ключа SSH на моем Mac. Если я изменю токен на что-то другое, я получу ошибку аутентификации (даже с ключом SSH, GitHub предпочитает предоставленный токен). То же самое произойдет, если я попробую использовать недопустимый токен с docker build, поэтому я думаю, что это означает, что ключ должен быть в порядке.
Jacob Stein

Пытался предоставить доступ к ~/.ssh в качестве объема, - "~/.ssh:/root/ssh:ro" и docker build [email protected]:org/repo.git на моем локальном компьютере, и оба дают мне это: failed to solve with frontend dockerfile.v0: failed to read dockerfile: failed to load cache key: rpc error: code = Unimplemented desc = unknown service moby.sshforward.v1.SSH. Я могу git clone [email protected]:org/repo.git успешно
Jacob Stein

Есть идея, что вы используете Docker Compose v2, который поставляется с рабочим столом Docker, интересно, что проблема в новой версии. Попробуй docker-compose disable-v2 из интерфейса командной строки он заставит его использовать v1. Посмотрим, сработает ли это. Вы также можете отключить его с помощью рабочего стола Docker. Выберите Настройки=>Общие и снимите флажок "Использовать Docker Compose V2">
djmonki

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................