Apabila membina imej docker dari awal, binari statik diperlukan untuk mengelakkan ralat semasa pelaksanaan. Walau bagaimanapun, arahan RUN go build -o /go/bin/myapp mungkin menghasilkan perduaan yang gagal dengan ralat "tiada fail atau direktori sedemikian".
Untuk mengatasinya, bendera berikut diperlukan:
RUN CGO_ENABLED=0 go build -o /go/bin/myapp -a -ldflags '-extldflags "-static"' .
Penjelasan:
Adalah penting untuk menggunakan kedua-dua CGO_ENABLED=0 dan -ldflags '-extldflags " -static"' kerana:
Dengan menggunakan kedua-dua bendera, anda boleh memastikan bahawa binari yang terhasil adalah statik dan tidak bergantung pada mana-mana perpustakaan luaran.
Atas ialah kandungan terperinci Bagaimana untuk Membina Binari Statik dalam Go for Docker Images dari Scratch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!