Rumah >pembangunan bahagian belakang >Golang >Mengapa Imej Gores Docker Saya Mengembalikan Ralat 'tiada fail atau direktori sedemikian'?

Mengapa Imej Gores Docker Saya Mengembalikan Ralat 'tiada fail atau direktori sedemikian'?

Susan Sarandon
Susan Sarandonasal
2024-12-29 19:14:14462semak imbas

Why Does My Docker Scratch Image Return a

Menyelesaikan masalah "tiada fail atau direktori sedemikian" Ralat dengan Imej Gores Docker

Imej gores Docker menyediakan persekitaran masa jalan yang minimum untuk menjalankan bekas. Walau bagaimanapun, apabila menggunakan Fail Docker dengan imej calar, anda mungkin menghadapi ralat yang menyatakan "standard_init_linux.go:207: proses pengguna exec menyebabkan 'tiada fail atau direktori sedemikian'."

Punca dan Penyelesaian

Ralat ini boleh timbul apabila anda tidak menggunakan binaan CGO. CGO (CGO bermaksud "C Go"; dalam konteks pengaturcaraan Go, ia merujuk kepada keupayaan untuk memanggil kod C dalam program Go) membina menghasilkan pautan dinamik ke perpustakaan seperti libc atau libmusl. Untuk menyelesaikan isu ini, lumpuhkan CGO dengan menambahkan baris berikut pada fail Docker anda:

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
    -ldflags="-w -s" -o $PROJ_BIN_PATH ./cmd/...

Pertimbangan Lain

Selain itu, semak perkara berikut:

  • Pastikan binari anda dinamakan dengan betul.
  • Jika binari anda adalah dipautkan secara dinamik, sahkan bahawa perpustakaan yang diperlukan wujud.
  • Anda boleh menggunakan perintah ldd untuk memeriksa pautan dinamik, seperti yang ditunjukkan dalam contoh di bawah:
docker build --target=0 -t your_go_image .
docker run -it --rm your_go_image ldd /$PROJ_NAME

Atas ialah kandungan terperinci Mengapa Imej Gores Docker Saya Mengembalikan 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