Rumah >pembangunan bahagian belakang >Golang >Mengapa Apl Web My Go Docker Gagal dengan Ralat 'tiada fail atau direktori sedemikian'?

Mengapa Apl Web My Go Docker Gagal dengan Ralat 'tiada fail atau direktori sedemikian'?

Barbara Streisand
Barbara Streisandasal
2024-12-16 21:43:14246semak imbas

Why Does My Go Docker Web App Fail with a

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:

  1. 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.

  2. 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!

Kenyataan:
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