Kon*_*stl 36 amazon-web-services aws-cli
我试图将awscli_v2放入一个基于 alpine 的docker容器中,发现它失败并显示以下错误消息:
/aws/install: line 78: /aws/dist/aws: not found
考虑到文件本身就在那里并且可以用 ls 列出,我猜想可执行文件所./aws/dist/aws依赖的某些库在 alpine 上不存在。有人知道可能是哪些图书馆吗?
bla*_*eij 63
实际上,只要稍加努力,就可以在 Alpine 上运行 AWS CLI v2:
FROM alpine:3.11
ENV GLIBC_VER=2.31-r0
# install glibc compatibility for alpine
RUN apk --no-cache add \
binutils \
curl \
&& curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \
&& curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-${GLIBC_VER}.apk \
&& curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk \
&& curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-i18n-${GLIBC_VER}.apk \
&& apk add --no-cache \
glibc-${GLIBC_VER}.apk \
glibc-bin-${GLIBC_VER}.apk \
glibc-i18n-${GLIBC_VER}.apk \
&& /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8 \
&& curl -sL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip \
&& unzip awscliv2.zip \
&& aws/install \
&& rm -rf \
awscliv2.zip \
aws \
/usr/local/aws-cli/v2/*/dist/aws_completer \
/usr/local/aws-cli/v2/*/dist/awscli/data/ac.index \
/usr/local/aws-cli/v2/*/dist/awscli/examples \
glibc-*.apk \
&& apk --no-cache del \
binutils \
curl \
&& rm -rf /var/cache/apk/*
Run Code Online (Sandbox Code Playgroud)
上述 Dockerfile 将为 Alpine 安装“glibc”包,以便 AWS CLI 能够找到所需的共享库。Dockerfile 还删除了一些我们可能不需要的东西,例如自动完成和示例。如果您需要一些其他特定的包,您当然可以将它们添加到 Dockerfile。
msm*_*ens 17
AWS CLI 版本 2 是针对 glibc 编译的,glibc 是 GNU 项目对 C 标准库的实现。大多数常见的 Linux 发行版使用 glibc,但 Alpine Linux 是基于musl libc 的。
由于针对 glibc 编译的二进制文件与 musl 不兼容,因此 AWS CLI 版本 2 无法在 Alpine Linux 上运行。
在 Alpine Linux 上运行 AWS CLI 版本 2 的最佳方式是让 Amazon 提供以下其中一项:
Ant*_*nyC 11
也可以使用https://git.adelielinux.org/adelie/gcompat
apk add gcompat
Run Code Online (Sandbox Code Playgroud)
来源: https: //wiki.alpinelinux.org/wiki/Running_glibc_programs
编辑样本:
ENV AWS_CLI_VER=2.0.30
RUN apk update && apk add --no-cache curl gcompat zip && \
curl -s https://awscli.amazonaws.com/awscli-exe-linux-x86_64-${AWS_CLI_VER}.zip -o awscliv2.zip && \
unzip awscliv2.zip && ./aws/install
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14939 次 |
| 最近记录: |