Alpine Linux是否处理与Busybox不同的authentication?

我从基础镜像errordeveloper / oracle-jdk开始。 这个Dockerfile在这里显示供参考:

FROM progrium/busybox MAINTAINER Ilya Dmitrichenko <errordeveloper@gmail.com> RUN opkg-install curl ca-certificates ENV JAVA_HOME /usr/jdk1.8.0_31 RUN curl \ --silent \ --location \ --retry 3 \ --cacert /etc/ssl/certs/GeoTrust_Global_CA.crt \ --header "Cookie: oraclelicense=accept-securebackup-cookie;" \ "http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz" \ | gunzip \ | tar x -C /usr/ \ && ln -s $JAVA_HOME /usr/java \ && rm -rf $JAVA_HOME/src.zip $JAVA_HOME/javafx-src.zip $JAVA_HOME/man ENV PATH ${PATH}:${JAVA_HOME}/bin ENTRYPOINT [ "java" ] CMD [ "-version" ] 

我想把这个移到Alpine Linux上,所以做了以下修改:

 FROM alpine MAINTAINER Ilya Dmitrichenko <errordeveloper@gmail.com> RUN apk --update upgrade && apk add curl ca-certificates && rm -rf /var/cache/apk/* ENV JAVA_HOME /usr/jdk1.8.0_31 RUN curl \ --silent \ --location \ --retry 3 \ --cacert /etc/ssl/certs/GeoTrust_Global_CA.crt \ --header "Cookie: oraclelicense=accept-securebackup-cookie;" \ "http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz" \ | gunzip \ | tar x -C /usr/ \ && ln -s $JAVA_HOME /usr/java \ && rm -rf $JAVA_HOME/src.zip $JAVA_HOME/javafx-src.zip $JAVA_HOME/man ENV PATH ${PATH}:${JAVA_HOME}/bin ENTRYPOINT [ "java" ] CMD [ "-version" ] 

主要是我改变了包pipe理工具,以降低curl和证书。

在确认了我的机器上的原始版本干净(它确实)后,我尝试了我的版本,并得到这个错误:(我closures – curl无声看到它)

 Step 4 : RUN curl --location --retry 3 --cacert /etc/ssl/certs/GeoTrust_Global_CA.crt --header "Cookie: oraclelicense=accept-securebackup-cookie;" "http://download.oracle.com/otn-pub/java/jdk/8u31-b13/server-jre-8u31-linux-x64.tar.gz" | gunzip | tar x -C /usr/ && ln -s $JAVA_HOME /usr/java && rm -rf $JAVA_HOME/man ---> Running in c91e4939f851 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (77) error setting certificate verify locations: CAfile: /etc/ssl/certs/GeoTrust_Global_CA.crt CApath: none gunzip: invalid magic tar: short read The command '/bin/sh -c curl --location --retry 3 --cacert /etc/ssl/certs/GeoTrust_Global_CA.crt --header "Cookie: oraclelicense=accept-securebackup-cookie;" "http://download.oracle.com/otn-pub/java/jdk/8u31-b13/server-jre-8u31-linux-x64.tar.gz" | gunzip | tar x -C /usr/ && ln -s $JAVA_HOME /usr/java && rm -rf $JAVA_HOME/man' returned a non-zero code: 1 

阿尔卑斯在这里做不同的事情吗? 为什么我的curl / certs会失败?

为了确保CA证书的创build/更新位置,请尝试添加(在此答案之后 ) update-ca-certificates

 apk add ca-certificates update-ca-certificates 

在你的情况下:

 RUN apk --update upgrade && \ apk add curl ca-certificates && \ update-ca-certificates && \ rm -rf /var/cache/apk/*