Rumah > pembangunan bahagian belakang > Golang > Membetulkan penerbitan imej tempatan ko pada MacOs

Membetulkan penerbitan imej tempatan ko pada MacOs

王林
Lepaskan: 2024-07-22 22:43:32
asal
724 orang telah melayarinya

Fixing ko local image publishing on MacOs

Mukadimah:

Saya masih menggunakan desktop Docker untuk menjalankan bekas pada MacBook Air saya. Saya tahu ada Colima tetapi tiada masa untuk menukar dan menangani akibatnya.
Saya juga baru-baru ini mula menggunakan ko untuk menyimpan apl Go saya.

ko hebat tapi...

Saya suka ko - ia membina imej selamat dan nipis tanpa gangguan. Tetapi ada satu isu - secara lalai - ko build menolak imej yang terhasil ke pendaftaran jauh.
Ia agak baik untuk penghantaran berterusan, tetapi saya melakukan banyak percubaan dan saya tidak selalu mahu menerbitkan semua sampah yang saya cipta ke jauh - cuba mengambil berat tentang lebar jalur rangkaian dan storan imej.

Jadi sebaliknya saya mahu membina imej saya ke storan imej tempatan.
Ia adalah mungkin untuk melakukannya dengan ko build . -L
Cuma pada MacOs ini gagal untuk saya dengan perkara berikut:

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?
Salin selepas log masuk

Memanggil daemon Docker

Jelas sekali pelanggan docker di dalam ko cuba menghubungi daemon Docker pada soket standard dan gagal.

Saya cuba googling untuk ralat ini tetapi tidak menemui apa-apa. Jadi saya memutuskan untuk menyelesaikannya sendiri.
Inilah perkaranya - pada MacOS soket Docker bukanlah standard /var/run/docker.sock - sebaliknya ia berada di ~/Library/Containers/com.docker.docker/Data/docker.raw.sock

Penyelesaian

Untuk membetulkannya, apa yang saya perlu lakukan ialah mencipta symlink dari soket Docker sebenar ke tempat pelanggan Docker standard menjangkakan untuk mencarinya:

sudo ln -s ~/Library/Containers/com.docker.docker/Data/docker.raw.sock /var/run/docker.sock
Salin selepas log masuk

Sekarang daemon Docker boleh dihubungi melalui alamat soket standard - ko boleh menolak imej kepadanya:

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
Salin selepas log masuk

Sementara itu saya juga membuka isu mengenai ko repo. Tetapi sehingga ia diperbaiki - penggodaman ini berfungsi seperti daya tarikan.

Semoga ini membantu anda juga.

Atas ialah kandungan terperinci Membetulkan penerbitan imej tempatan ko pada MacOs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan