当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在AlpineLinuxDocker的路径中找不到已安装的Go二进制文件》经验,为你挑选了3个好方法。

我有一个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二进制文件的任何想法?



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

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


已安装的Go版本使用glibc和Alpine编译,默认情况下未安装.您可以使用muslc编译Go,这是Alpine的默认值,或者执行上面的符号链接.
该命令为我解决了这个问题。您能否详细说明为什么需要这样做,以及在编译Go lib时是否有避免这种情况的方法?谢谢
将此行添加到Dockerfile会出现以下错误:#Error errorocating ./my_go_binary:__ fprintf_chk:symbol not found`.似乎是C库之间的不兼容性.其他人收到此错误?

2> 小智..:

我用这些选项编译了alpine中的二进制文件

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o [name of binary]

有效.



3> knite..:

在Debian 9(Stretch)/ Go 1.10.2下构建并在Alpine 3.7.0下运行时:

CGO_ENABLED=0 go build

GOOS=linux没有GOARCH=amd6必要,也没有必要。

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有