1. 程式人生 > >【GO】使用docker執行go指令碼報錯:fork/exec /tmp/go-build730426207/b001/exe/a.exe: exec format error

【GO】使用docker執行go指令碼報錯:fork/exec /tmp/go-build730426207/b001/exe/a.exe: exec format error

問題:

docker run --rm -v /search/odin/data/go_test:/usr/src/myapp 
           -w /usr/src/myapp 
           -e GOOS=windows -e GOARCH=386 
           golang:latest go run a.go

結果居然報錯:

fork/exec /tmp/go-build616243179/b001/exe/a.exe: exec format error

原因:

因為執行命令中的-e GOOS引數設定為了windows,也就是說我們正在測試的docker容器作業系統之外的其他東西,導致無法go使用系統函式錯誤。因為沒有看到golang dockerfile中的具體內容,現在猜測的是不能進行跨平臺測試操作。所以對於go test不要設定$GOOS

解決:

去掉-e引數,執行:

docker run --rm -v /search/odin/data/go_test:/usr/src/myapp 
           -w /usr/src/myapp 
           golang:latest go run a.go