Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Ralat 'tiada fail atau direktori sedemikian' dengan Docker Scratch Images and Go?

Bagaimana untuk Menyelesaikan Ralat 'tiada fail atau direktori sedemikian' dengan Docker Scratch Images and Go?

DDD
DDDasal
2024-12-15 11:09:11152semak imbas

How to Resolve

"tiada fail atau direktori sedemikian" dengan Imej Gores Docker: Diselesaikan

Apabila menggunakan imej gores Docker, anda mungkin menghadapi ralat "tidak fail atau direktori sedemikian" apabila melaksanakan binari. Ralat ini selalunya berpunca daripada binari yang dipautkan secara dinamik kepada perpustakaan yang tidak wujud dalam imej.

Untuk membetulkan isu ini, lumpuhkan CGO (C Go):

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

Pautan CGO ke perpustakaan sistem, yang boleh menyebabkan masalah pada imej calar. Dengan melumpuhkan CGO, anda memastikan bahawa binari dipautkan secara statik dan tidak bergantung pada perpustakaan luaran.

Selain itu, anda boleh mengesahkan pautan dinamik dalam binari anda menggunakan ldd:

docker build --target=0 -t your_go_image .
docker run -it --rm your_go_image ldd /$PROJ_NAME

Ini arahan akan menyenaraikan mana-mana perpustakaan yang dipautkan binari. Jika ldd mengembalikan "bukan boleh laku dinamik", binari dipautkan secara statik.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'tiada fail atau direktori sedemikian' dengan Docker Scratch Images and Go?. 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