gpt4 book ai didi

docker - 无法在 docker 容器中执行二进制文件,但可以从主机执行

转载 作者:IT王子 更新时间:2023-10-29 01:40:34 28 4
gpt4 key购买 nike

我有一个基于 composer:1.8 的 docker 容器(基于 php:7-alpine )。

在容器内我下载了一个 tar.gz通过 php,将其解压缩并解压缩,效果很好。这包含我要执行的 Go 二进制文件。在 docker 容器内执行二进制文件时,我收到此错误消息:./bin/<binary>: No such file or directory .在我的主机上,我可以完美地执行在 docker 容器中下载的这个二进制文件。

如果这很重要,我会启动 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

我该怎么做才能使这项工作成功?

最佳答案

这是因为二进制文件是使用 glibc 编译的,而 alpine 使用 musl 编译的。我已经解决了在构建时将我的二进制文件传递给 CGO_ENABLED=0 环境变量

关于docker - 无法在 docker 容器中执行二进制文件,但可以从主机执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55188481/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com