【发布时间】:2019-06-14 10:38:53
【问题描述】:
我正在尝试让在 cmd 行上运行的 golang 程序在 docker 容器中运行,但导入 archive/tar 会导致错误。
这行得通:
package main
import (
"fmt"
)
func main() {
fmt.Println("success!")
}
产生输出:
liam gotest $ docker run -it gotest 成功!这不是:
package main
import (
"archive/tar"
"fmt"
)
var _ = tar.TypeReg
func main() {
fmt.Println("success!")
}
产生输出:
liam gotest $ docker run -it gotest
standard_init_linux.go:207: exec user process caused "no such file or directory"
这是我的 Dockerfile:
FROM scratch
WORKDIR /app
COPY . /app
CMD ["./test"]
我在跑步:
go 版本 go1.11.4 linux/amd64 Docker 版本 18.09.1,构建 4c52b90 ubuntu 18.04LTS
如果有任何建议,我将不胜感激。
由毗湿奴纳拉亚南解决:
我用过
`CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo test.go`
构建一个静态可执行文件,它工作。
【问题讨论】: