web-dev-qa-db-ja.com

Dockerfileからイメージをビルドしようとすると「unzip:short read」が表示されるのはなぜですか?

From Spring Microservices in Action book:私は Docker Maven Plugin を使用して、 JavaクラウドへのDockerコンテナーとしてのマイクロサービス。

Dockerfile:

FROM openjdk:8-jdk-Alpine
RUN mkdir -p /usr/local/configserver
ADD jce_policy-8.Zip /tmp/
RUN unzip /tmp/jce_policy-8.Zip && \
    rm /tmp/jce_policy-8.Zip && \
    yes | cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/Java-1.8-openjdk/jre/lib/security/
ADD @[email protected] /usr/local/configserver/
ADD run.sh run.sh
RUN chmod +x run.sh
CMD ./run.sh

Dockerfileのステップ4に関連する出力

...

---> Using cache
---> dd33d4c12d29
Step 4/8 : RUN unzip /tmp/jce_policy-8.Zip && rm /tmp/jce_policy-8.Zip && yes | cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/Java-1.8-openjdk/jre/lib/security/

---> Running in 1071273ceee5
Archive:  /tmp/jce_policy-8.Zip
unzip: short read

なぜ取得するのですかunzip: short readイメージをビルドしようとすると、

6
lcnicolau

多分それは、アルパインのunzipコマンドが標準の解凍ツールではなくbusyboxで提供されているという事実に関連しているかもしれません。

Busyboxには、このエラーに関連するバグがあります: https://bugs.busybox.net/show_bug.cgi?id=8821

詳細は次のとおりです: https://github.com/wahern/luaossl/issues/1

回避策として、標準のunzipコマンドをインストールすると機能するはずです。

0
mickours