Menjalankan Docker dengan Apl Web Asas Go: Ralat "tiada fail atau direktori sedemikian"
Apabila cuba menjalankan aplikasi web asas dalam Go menggunakan Docker, pengguna mungkin menghadapi ralat berikut:
standard_init_linux.go:190: exec user process caused "no such file or directory"
Ralat ini berlaku kerana binari boleh laku untuk aplikasi web tiada perpustakaan atau penterjemah yang diperlukan. Dalam kes khusus ini, perpustakaan libc tiada, yang dipautkan secara dinamik kepada binari secara lalai apabila pakej bersih diimport.
Untuk menyelesaikan isu ini, langkah berikut boleh diambil:
Kompilasi binari dengan kompilasi silang bendera:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
Bendera ini melumpuhkan kompilasi silang, menentukan sistem pengendalian dan seni bina sasaran dan mengalih keluar maklumat penyahpepijatan daripada binari.
Gunakan binari yang disusun dalam imej Docker:
Ganti arahan CMD dalam fail Docker dengan yang berikut:
CMD ["mybin"]
Dengan mengikuti langkah ini, pengguna boleh menyusun binari aplikasi web Go dengan betul, memautkan perpustakaan yang diperlukan dan menghapuskan "tiada fail sedemikian atau directory" semasa menjalankan aplikasi dalam bekas Docker.
Atas ialah kandungan terperinci Mengapa Apl Web My Go Docker Gagal dengan Ralat 'tiada fail atau direktori sedemikian'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!