"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!