我有一个围棋二进制程序,我正在阿尔卑斯 docker 图像上运行.

这对Docker Go binary很好用.

docker run -it alpine:3.3 sh
apk add --no-cache curl

DOCKER_BUCKET=get.docker.com
DOCKER_VERSION=1.9.1
curl -fSL "https://${DOCKER_BUCKET}/builds/Linux/x86_64/docker-$DOCKER_VERSION" -o /usr/local/bin/docker
chmod +x /usr/local/bin/docker
docker help
Usage: docker [OPTIONS] COMMAND [arg...]
...

然而,对于Go二进制,我想安装.

RACK_BUCKET=ec4a542dbf90c03b9f75-b342aba65414ad802720b41e8159cf45.ssl.cf5.rackcdn.com
RACK_VERSION=1.1.0-beta1
curl -fSL "https://${RACK_BUCKET}/${RACK_VERSION}/Linux/amd64/rack" -o /usr/local/bin/rack
chmod +x /usr/local/bin/rack

rack help
sh: rack: not found

/usr/local/bin/rack help
sh: /usr/local/bin/rack: not found

ls -al /usr/local/bin/
total 43375
drwxr-xr-x    2 root     root          1024 Jan 11 18:10 .
drwxr-xr-x    8 root     root          1024 Jan 11 18:09 ..
-rwxr-xr-x    1 root     root      30222575 Jan 11 18:09 docker
-rwxr-xr-x    1 root     root      14190576 Jan 11 18:10 rack

which rack
/usr/local/bin/rack

我认为这可能与this answer有关,但我在运行ldd时没有遇到同样的错误.

ldd /usr/local/bin/rack
    /lib64/ld-linux-x86-64.so.2 (0x7fdd15cd0000)
    libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fdd15cd0000)
    libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fdd15cd0000)

在Alpine Linux Docker上的path中找不到关于这个安装的Go二进制文件的任何 idea ?

推荐答案

RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

由于musl和glibc so是兼容的,您可以创建此符号链接,它将修复缺少的依赖项.

Linux相关问答推荐

如何限制SLURM中并行执行的程序数量

在程序集x86_64中跳转后调用ret时出现分段故障

Linux内核模块构建过程中,许可信息添加了前缀

使用sed命令将记录中的字符串替换为DD-MMM-YYYY日期格式

如何查明第三方是否杀死或 destruct 了 C++ 中的程序

在具有不同文件类型的文件夹中编辑多个 xml 文件 - 使用预定顺序

RabbitMQ 安装后没有自动启动

sed:用空格替换

中的换行符

bash 更有效的方法来转换奇数日期格式以被 linux 日期识别

nohup 是否可以跨管道工作?

如何安装脚本以从命令行的任何位置运行?

Eclipse 的 C# 插件

pthread_exit 与返回

将 bash 脚本添加到路径

如何通过命令提示符判断 Linux 中的 BIOS 版本或名称?

在 Linux / Mono 上运行 ServiceStack 的最佳方式是什么?

如何从 Linux 终端找到特定文件?

如何让我的 Golang Web 服务器在后台运行?

卸载从源代码构建的python?

获取本地时区的 Olson TZ 名称?