![](/img/trans.png)
[英]java.net.InetAddress java class doesn't resolve IP on Alpine Docker container
[英]Alpine Docker container doesn't recognize UPX as an executable
堆垛機,
我正在使用 Docker 來容器化我的應用程序。 在下面的階段,我正在嘗試使用UPX打包它。
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=strip --best /usr/local/bin/ace' 返回非零代碼:127
出於某種原因,容器無法將 upx 識別為可執行文件! 誰能給我一些指點?
原來有一個 UPX 的 apk 包。 更簡單的安裝方法是:
apk add upx
您擁有的存檔只是文件,因此您無法按名稱尋址。 如果您提取整個內容(只是文件),則它可以工作。 將 Dockerfile 中的相應行更改為以下內容:
RUN tar -xJOf /tmp/upx.tar.xy upx-${UPX_VERSION}-amd64_linux > /usr/local/bin/upx \
請注意,我從存檔名稱中刪除了文件名。
添加apk add --no-cache upx=3.95-r1
與 2019 年 3 月相同。
要使其與 Dockerfile 一起使用:
(根據自己的喜好調整 Alpine 版本)
FROM alpine:latest as build
RUN apk add --no-cache upx
# Build and use upx as applicable...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.