Korrektur der lokalen Bildveröffentlichung auf MacOs

王林
Freigeben: 2024-07-22 22:43:32
Original
494 人浏览过

Fixing ko local image publishing on MacOs

Präambel:

Ich verwende immer noch den Docker-Desktop, um Container auf meinem MacBook Air auszuführen. Ich weiß, dass es Colima gibt, aber ich habe keine Zeit, umzuziehen und mich mit den Konsequenzen auseinanderzusetzen.
Ich habe vor kurzem auch damit begonnen, ko für die Containerisierung meiner Go-Apps zu verwenden.

ko ist großartig, aber...

Ich liebe ko – es erstellt verteilungsfreie, sichere und schlanke Bilder. Es gibt jedoch ein Problem: Standardmäßig schiebt ko build das resultierende Image in die Remote-Registrierung.
Für die kontinuierliche Bereitstellung ist es einigermaßen in Ordnung, aber ich experimentiere viel und möchte nicht immer den ganzen Müll, den ich erstelle, auf Remote-Geräten veröffentlichen – ich versuche, Rücksicht auf Netzwerkbandbreite und Bildspeicher zu nehmen.

Stattdessen möchte ich meine Bilder im lokalen Bildspeicher erstellen.
Mit ko build ist das möglich. -L
Nur dass dies auf MacOs für mich mit folgendem Fehler fehlschlug:

2024/07/22 15:52:50 Loading otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
2024/07/22 15:52:50 daemon.Write response:
Error: failed to publish images: error publishing ko://github.com/otomato/myapp: error loading image: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Nach dem Login kopieren

Aufruf des Docker-Daemons

Offensichtlich versucht der Docker-Client in ko, den Docker-Daemon über den Standard-Socket zu kontaktieren, was jedoch fehlschlägt.

Ich habe versucht, nach diesem Fehler zu googeln, habe aber nichts gefunden. Also habe ich beschlossen, es selbst zu lösen.
Hier ist die Sache: Unter MacOS ist der Docker-Socket nicht der Standard-/var/run/docker.sock, sondern er befindet sich unter ~/Library/Containers/com.docker.docker/Data/docker.raw.sock

Die Lösung

Um das zu beheben, musste ich einen symbolischen Link vom eigentlichen Docker-Socket zu der Stelle erstellen, an der der Standard-Docker-Client ihn erwartet:

sudo ln -s ~/Library/Containers/com.docker.docker/Data/docker.raw.sock /var/run/docker.sock
Nach dem Login kopieren

Jetzt kann der Docker-Daemon über die Standard-Socket-Adresse kontaktiert werden – ko kann Bilder dorthin pushen:

ko build . -B -L --platform linux/arm64
2024/07/22 16:04:04 Building github.com/otomato/myapp for linux/arm64
2024/07/22 16:04:04 Loading otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
2024/07/22 16:04:05 Loaded otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
2024/07/22 16:04:05 Adding tag latest
2024/07/22 16:04:05 Added tag latest
otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
Nach dem Login kopieren

Mittlerweile habe ich auch eine Ausgabe im Ko-Repo eröffnet. Aber bis es behoben ist, funktioniert dieser Hack wie ein Zauber.

Ich hoffe, das hilft dir auch.

以上是Korrektur der lokalen Bildveröffentlichung auf MacOs的详细内容。更多信息请关注PHP中文网其他相关文章!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!