当前位置: 首页 > 面试题库 >

在Alpine Linux Docker的路径中找不到已安装的Go二进制文件

扈德容
2023-03-14
问题内容

我有一个Go二进制文件,试图在Alpine Docker映像上运行。

这对于Docker Go二进制文件很好用。

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

我认为这可能与这个答案有关,但是在运行时我并没有得到同样的错误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的路径中找不到这个安装的Go二进制文件的想法吗?


问题答案:

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

由于musl和glibc是兼容的,因此您可以进行此符号链接,它将修复丢失的依赖项。



 类似资料:
  • 下面是我的代码。我使用的是FF 49.0.1版和selenium server 3.0测试版。增加了壁虎河。在我的代码中使用exe系统。setProperty。我还有我的FF。我的系统路径变量中也有exe。尽管我的错误率越来越低。有人帮忙解决这个问题吗 线程“main”组织中出现异常。openqa。硒。WebDriverException:在路径中找不到firefox二进制文件。确保安装了fire

  • 我正在使用PyCharm和PySpark运行一个巨大的文本文件。 这就是我想做的: 但是,PyCharm抛给我这个错误: 我只是不明白为什么。toPandas()不工作。Spark版本为2.3。这个版本有什么我不知道的变化吗?我用spark 2.2在另一台机器上运行了这段代码,它运行得很好。 我甚至把出口线改成了这样 仍然得到相同的错误。我做错了什么?是否有其他方法可以在不影响性能的情况下将导出到

  • 问题内容: 我正在尝试首次在Linux上安装Haskell平台(我也是一个相当新的Linux用户)。受害者系统是全新的Red Hat系统。并且这里涉及的所有内容都应该是64位。 平台网站上的指示[1]表示我需要ghc7.0.3来增强功能。他们提供了到ghc-7.0.3通用二进制文件的链接来执行此操作。我拿来跑了 按照没有事故的指示(它是二进制文件,因此不需要编译)但是,当我尝试运行ghci时,我得

  • 嗯,我下载了winutils.exe,创建了“C:\winutils\bin”并复制了winutils。还创建了环境路径HADOOP_HOME。但我不明白为什么它不起作用。我的代码

  • 问题内容: 我想从创建的可执行文件中 删除 所有路径信息。 我正在编译这样的代码: 上面的go build命令中的示例程序集的一部分: 注意:不建议使用:,如果您将其推荐为解决方案,则可能导致可执行文件损坏。 问题答案: 使用-trimpath标志删除路径信息: 更多信息: 传递给并将从elf二进制文件中删除所有路径信息。 您可以使用以下方法检查结果: 尽管有人说它已经修复,但在go社区中使用工具