首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alpine容器不承认UPX为可执行文件

Alpine容器不承认UPX为可执行文件
EN

Stack Overflow用户
提问于 2018-08-14 13:01:24
回答 4查看 1.3K关注 0票数 2

堆垛工,

我用Docker来装我的应用程序。在下面的阶段中,我试图使用UPX打包它。

代码语言:javascript
复制
FROM alpine:3.8 AS compressor

# Version of upx to be used(without the 'v' prefix)
# For all releases, see https://github.com/upx/upx/releases
ARG UPX_VERSION=3.94

# Fetch upx, decompress it, make it executable.
ADD https://github.com/upx/upx/releases/download/v${UPX_VERSION}/upx-${UPX_VERSION}-amd64_linux.tar.xz /tmp/upx.tar.xy
RUN tar -xJOf /tmp/upx.tar.xy upx-${UPX_VERSION}-amd64_linux/upx > /usr/local/bin/upx \ 
 && chmod +x /usr/local/bin/upx

COPY --from=builder /usr/local/bin/ace /usr/local/bin/ace

RUN /usr/local/bin/upx --overlay=strip --best /usr/local/bin/ace

问题是,当我构建映像时,会出现以下错误:

命令'/bin/sh -c /usr/local/bin/upx --overlay=条带-最佳/usr/local/bin/ace‘返回一个非零代码: 127

由于某些原因,容器不承认upx为可执行文件!有人能给我指点吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-16 17:33:23

原来UPX有一个apk包。更简单的安装方法是:

代码语言:javascript
复制
apk add upx
票数 2
EN

Stack Overflow用户

发布于 2018-08-14 13:52:18

您所拥有的存档只是文件,所以您不能按名称对其进行地址处理。如果您提取了整件事情(这只是文件),它就能工作。将Dockerfile中的对应行更改为:

代码语言:javascript
复制
RUN tar -xJOf /tmp/upx.tar.xy upx-${UPX_VERSION}-amd64_linux > /usr/local/bin/upx \

请注意,我从归档名称中删除了文件名。

票数 0
EN

Stack Overflow用户

发布于 2019-03-24 13:41:57

加上截至2019年3月的apk add --no-cache upx=3.95-r1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51842119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档