Adres URL złożenia repozytorium Git z pomocą Docker compose

0

Pytanie

Staram się wykorzystać adres URL repozytorium git w swoim docker-compose.yml plik, jak opisano tutaj. Serwis wygląda tak:

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

Otrzymuję następujący błąd:

$ 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

ALE, gdy ja kopiuję dokładny adres URL z mojego docker-compose.yml plik, mogę z powodzeniem używać go podczas montażu Docker. Mogę zobaczyć wszystkie etapy Dockerfile być wykonane.

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

Jest develop gałąź, [MY_GITHUB_OAUTH_TOKEN] czy mój rzeczywisty token GitHub, i jest ważny Dockerfile (z dużej litery D) w katalogu głównym REPO. Dlaczego to powinno działać z docker build ale nie docker-compose? To nie może być problem z tokenem, tak jak on działa docker build.

Jeśli to ma znaczenie, ja na Mac M1 z zainstalowaną Docker dla komputerów Mac. docker-compose doskonale współpracuje z innymi służbami.

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

Najlepsza odpowiedź

0

Spróbuj# - usunięcie podwójnych cudzysłowów

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

czy to z podwójnymi cudzysłowami lub bez nich

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

czy to z podwójnymi cudzysłowami lub bez nich

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

Dziękuję za odpowiedź. Ten sam błąd, co w poście ze wszystkimi 3, niestety.
Jacob Stein

Jak co następuje: 1) ustawić SSH na swój kontener jako część ustawienia montażu, 2) ustawić SSH zgody między komputerem Mac i jest Git REPO, 3) w ramach docker komponować dostosować podłączyć katalog, gdzie twój SSH id_rsa klucz znajduje się w tomie z kontenerami SZKOŁY Deere 4) Użyj '[email protected]/org/repo.git#develop jak zbudować swój konfig. W ten sposób możemy zobaczyć, czy jest to problem z konfiguracją docker compose / mac / git lub czy wiąże się to z pomocą tokenu oauth w docker compose
djmonki

Będziemy robić. Ja również wspominam, kiedy ja po prostu używam git clone https://[MY_GITHUB_OAUTH_TOKEN]@github.com/org/repo.git to działa dobrze, ale mam ustawienia klucza SSH na komputerze Mac. Jeśli zmienię token na coś innego, dostanę błąd uwierzytelniania (nawet z kluczem SSH, GitHub woli otrzymany token). To samo się stanie, jeśli spróbuję użyć nieprawidłowy token z docker buildwięc myślę, że to oznacza, że klucz musi być w porządku.
Jacob Stein

Starał się zapewnić dostęp do ~/.ssh jako objętości, - "~/.ssh:/root/ssh:ro" i docker build [email protected]:org/repo.git na moim komputerze, i oba dają mi to: 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. Mogę git clone [email protected]:org/repo.git z powodzeniem
Jacob Stein

Jest pomysł, że używasz Docker Compose v2, który jest wyposażony w biurko Docker, co ciekawe, problem w nowej wersji. Spróbuj docker-compose disable-v2 z interfejsu wiersza polecenia każe go używać v1. Zobaczymy, czy to się uda. Można również wyłączyć go za pomocą pulpitu Docker. Wybierz Ustawienia=>Ogólne i usuń zaznaczenie pola wyboru "Użyj Docker Compose V2">
djmonki

W innych językach

Ta strona jest w innych językach

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