Standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”

Standard_init_linux.go:211: exec user process caused “exec format error”

以下代码会产生错误: standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”

有没有指出我做错了什么?


FROM golang:alpine AS builder

ENV GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOARCH=wasm GOOS=js

WORKDIR /build

COPY . .

COPY wasm_exec.js . 
COPY server.go . 
COPY main.wasm . 
COPY manifest.json . 
COPY sw.js . 
COPY wasm_exec.js . 
COPY app.js . 
COPY index.html .

EXPOSE 8989 
ENTRYPOINT ["./server.go"]

错误是因为您试图在不编译的情况下执行 server.go 文件,您需要编译 server.go 以获得可执行文件,然后可以将其用作可执行文件。

go build server.go

或者你可以直接运行它使用

go run server.go
  1. 要使用 dos2unix 修复文件格式,git 可能会将其从 lf 更改为 crlf
  2. go build before copy to docker, 然后, copy and execute the bin
  3. 如果你不想做pre-built,最后一行应该是ENTRYPOINT ["go","run","./server.go"]