在golang中导入存档/ tar时docker run失败

利亚姆·莱菲(Liam LeFey):

我正在尝试获取在cmd行上运行的golang程序以在docker容器中运行,但是导入存档/ tar会导致错误。

这有效:


    package main
    import (
            "fmt"
    )
    func main() {
            fmt.Println("success!")
    }

产生输出:

    利亚姆·盖斯特$ docker run-它
    取得了成功!

这不是:


    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

我将不胜感激任何建议。

由毗湿奴narayanan解决:

我用了

`CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo test.go`

构建一个静态可执行文件,它就可以了。

Vishnu narayanan:

为什么呢

这是由于默认go build行为。由于动态链接,编译后的二进制文件仍在系统路径中寻找库。

由于scratch为空,因此二进制文件无法找到系统库并引发错误。

如何解决呢?

修改构建脚本以生成包含所有内置库的静态编译构建。

CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .

将上述构建中的输出二进制文件用于docker容器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在ObjC ++文件中导入DTCoreText时编译失败

docker run -v bindmount失败

在Golang中导入模块时如何捕获错误?

使用Golang和Docker导入外部软件包时构建失败

docker run在“ python3:无法打开文件”时失败

使用docker Alpine时出现“ tar:在存档中找不到”错误

Docker dm_task_run失败错误

Docker Run对于Python项目失败

PyImport_Import在python模块中导入子模块时失败

当构建参数包含`-gcflags“ all = -N -l”并在MacOS中导入net / http时,构建失败

在2个功能模块中导入同一库时,清单合并失败

golang远程导入失败

使用Golang API构建Docker映像时复制失败

为什么在docker run命令成功时此docker-compose命令失败?

在Golang中导入私人仓库时版本和https引用无效

VSTS docker任务在docker RUN命令中的'&&'令牌上失败

在PySpark中导入用户定义的模块失败

由于docker build中的TypeScript错误,npm run build失败

在XCode 7中导入具有类别扩展名的接口时,编译和运行时失败

收到错误“ DLL加载失败:找不到指定的模块”。在尝试使用PyCharm在Anaconda中导入Windows的Tensorflow时

Golang导入本地包失败

运行“ tns run ios”时,NativeScript CLI失败

从bash脚本运行`docker run`失败。命令在命令行上不会失败

Docker构建错误,存档/ tar:不支持套接字

在docker run中导出变量列表

ios-在Xcode中导出存档文件时出错

当loop.run_until_complete工作时asyncio.run失败

在Docker Postgresql中导入OSM数据

在GitLab中导入ZAP Docker映像

TOP 榜单

热门标签

归档