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.
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?
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
Um dies zu beheben, musste ich einen symbolischen Link vom tatsächlichen 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
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
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.
Das obige ist der detaillierte Inhalt vonKorrektur der lokalen Bildveröffentlichung auf MacOs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!