我有一个基于composer:1.8
(基于php:7-alpine
)的docker容器。
在容器中,我通过php下载了一个tar.gz
,解压缩并解压,这样就可以正常工作了。它包含了我想要执行的Go二进制文件。当在docker容器中执行二进制文件时,我得到这个错误消息:./bin/<binary>: No such file or directory
。在我的主机上,我可以很好地执行这个在docker容器中下载的二进制文件。
如果这很重要,我会用:docker run -it --rm --volume=$PWD:/usr/src/myapp -u $(id -u):$(id -g) --name ec ec /bin/bash
启动停靠容器
我也试着在安装readelf -a <binary>
之后运行它,但没有任何效果。
bash-4.4$ ls -l <binary> && echo userid: $(id -u) && echo groupid: $(id -g) && uname -om && ./<binary>
-rwxr-xr-x 1 1000 985 7582050 Mar 15 17:09 <binary>
userid: 1000
groupid: 985
x86_64 Linux
bash: ./<binary>: No such file or directory
我能做些什么来让它工作呢?
发布于 2019-03-16 16:56:34
这是因为二进制文件是使用glibc
编译的,而阿尔卑斯是使用musl
编译的。我使用它在构建时传递我的二进制文件CGO_ENABLED=0
环境变量
https://stackoverflow.com/questions/55188481
复制相似问题