1

如果我在 alpine 上的 go 1.7.1 上构建https://github.com/m3europe/procwrap并尝试在 ubuntu trusty 上运行二进制文件,我会找不到文件,如果我在 trusty 上构建并尝试在 alpine 上运行,也是如此. 我怀疑这与以某种方式进行链接有关,但是到目前为止,我的职业生涯大部分时间都在托管执行环境中度过,因此我在这里有点超出我的深度。我看似天真的理解是 AMD64 构建应该适用于任何 AMD64 linux 发行版,不是吗?

下面的 Dockerfile 演示了这个问题。第 6 行下载的可执行文件是基于 golang:1.7.1-alpine 镜像构建的:

FROM ubuntu:trusty
RUN apt-get update
RUN apt-get install -y wget
RUN mkdir /procwrap
WORKDIR /procwrap
RUN wget https://github.com/myles-mcdonnell/procwrap/releases/download/v1.0.0/procwrap.v1.amd64 -O procwrap
RUN wget https://raw.githubusercontent.com/myles-mcdonnell/procwrap/master/procwrap.toml -O procwrap.toml
RUN chmod +x procwrap
CMD ./procwrap -v
4

1 回答 1

2

用于ldd you-bin-path打印共享库依赖,可能两个系统有不同的lib路径结构。

于 2016-09-16T15:27:18.867 回答