我得到了一个Go二进制文件,我正试图在阿尔卑斯山码头镜像上运行。
这对于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
我认为这可能与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)
在高山Linux Docker上的path中找不到这个安装的Go二进制文件有什么想法吗?
发布于 2016-02-25 05:24:43
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
由于musl和glibc so是兼容的,您可以创建此symlink,它将修复缺少的依赖项。
发布于 2016-12-14 02:35:44
我用下面这些选项在高山编译了go二进制文件。
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o [name of binary]
啊,真灵。
发布于 2018-06-12 07:09:25
在Debian 9 (Stretch) / Go 1.10.2下构建,在Alpin3.7.0下运行时:
CGO_ENABLED=0 go build
GOOS=linux
和GOARCH=amd6
都不是必需的。
https://stackoverflow.com/questions/34729748
复制相似问题