我有一个 Go 二进制文件,我试图在 Alpine Docker 映像上运行。这适用于 Docker Go 二进制文件。docker run -it alpine:3.3 shapk add --no-cache curlDOCKER_BUCKET=get.docker.comDOCKER_VERSION=1.9.1curl -fSL "https://${DOCKER_BUCKET}/builds/Linux/x86_64/docker-$DOCKER_VERSION" -o /usr/local/bin/dockerchmod +x /usr/local/bin/dockerdocker helpUsage: docker [OPTIONS] COMMAND [arg...]...但是,对于我想安装的 Go 二进制文件。RACK_BUCKET=ec4a542dbf90c03b9f75-b342aba65414ad802720b41e8159cf45.ssl.cf5.rackcdn.comRACK_VERSION=1.1.0-beta1curl -fSL "https://${RACK_BUCKET}/${RACK_VERSION}/Linux/amd64/rack" -o /usr/local/bin/rackchmod +x /usr/local/bin/rackrack helpsh: rack: not found/usr/local/bin/rack helpsh: /usr/local/bin/rack: not foundls -al /usr/local/bin/total 43375drwxr-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 rackwhich 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 二进制文件的任何想法?
3 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
由于 musl 和 glibc 是兼容的,您可以创建此符号链接,它将修复缺少的依赖项。
冉冉说
TA贡献1877条经验 获得超1个赞
我用这些选项在 alpine 编译了二进制文件
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o [name of binary]
有效。
噜噜哒
TA贡献1784条经验 获得超7个赞
在 Debian 9 (Stretch) / Go 1.10.2 下构建并在 Alpine 3.7.0 下运行时:
CGO_ENABLED=0 go build
既没有GOOS=linux
也没有GOARCH=amd6
必要。
- 3 回答
- 0 关注
- 254 浏览
添加回答
举报
0/150
提交
取消