Rumah >pembangunan bahagian belakang >Golang >Mengapa Apl Web Go Dockerized Saya Gagal dengan 'Tiada Fail atau Direktori Sebegitu'?

Mengapa Apl Web Go Dockerized Saya Gagal dengan 'Tiada Fail atau Direktori Sebegitu'?

Patricia Arquette
Patricia Arquetteasal
2024-12-16 11:10:13795semak imbas

Why Does My Dockerized Go Web App Fail with

Ralat Eksekutif Imej Docker: "Tiada Fail atau Direktori Sebegitu" Semasa Menjalankan Apl Web Go

Imej Docker yang dibuat baru-baru ini menghadapi ralat apabila berjalan, memaparkan mesej "standard_init_linux.go:190: proses pengguna exec menyebabkan "tiada fail atau direktori sedemikian"." Ralat ini menghalang aplikasi web Go daripada melaksanakan dengan betul dalam bekas Docker.

Punca ralat ini terletak pada fail yang hilang, skrip tiada penterjemahnya, atau boleh laku tidak mempunyai pustaka yang diperlukan. Dalam keadaan ini, import pakej "bersih" dalam kod Go menghasilkan kemasukan automatik libc sebagai binari yang dipautkan secara dinamik. Untuk mengesahkan ini, gunakan perintah "ldd" pada binari.

Untuk menyelesaikan isu ini, bendera binaan tambahan mesti disediakan:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go

Bendera ini melumpuhkan CGO (pengkompil Go yang dibina -dalam sokongan untuk C), nyatakan sistem pengendalian dan seni bina sasaran, dan hasilkan binari yang dipautkan secara statik. Ini memastikan bahawa semua perpustakaan yang diperlukan dibenamkan dalam boleh laku, menghapuskan keperluan untuk kebergantungan luaran.

Dengan memasukkan bendera ini semasa proses binaan Go, imej Docker yang terhasil akan menyertakan kebergantungan yang diperlukan dan mesej ralat akan menjadi diselesaikan, membenarkan aplikasi web Go untuk dilaksanakan dengan jayanya dalam bekas Docker.

Atas ialah kandungan terperinci Mengapa Apl Web Go Dockerized Saya Gagal dengan 'Tiada Fail atau Direktori Sebegitu'?. 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