2015-10-26 10 views
5

Ich begann mit einem Basis-Image Fehler Entwickler/Oracle-JDK. Diese Dockerfile wird hier als Referenz gezeigt:Behandelt Alpine Linux anders als Busybox?

FROM  progrium/busybox 
MAINTAINER Ilya Dmitrichenko <[email protected]> 

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" ] 

Ich mag würde dies zu Alpine Linux bewegen, so dass eine folgenden Änderungen vorgenommen:

FROM  alpine 
MAINTAINER Ilya Dmitrichenko <[email protected]> 

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" ] 

Vor allem das Paket-Management-Tool, das ich geändert nach unten ziehen Curl und Ca-Zertifikate.

Nach der Bestätigung des Originals auf meiner Maschine sauber baut (es tut), ich meine Version ausprobiert und habe diesen Fehler: (drehte ich --silent auf der Locke ab, es zu sehen)

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 

Does Alpine tun etwas anderes hier? Warum könnten meine Curls/Certs versagen?

+0

eher alt, Aber hast du auch eine PEM versucht? – Andreas

Antwort

13

Nur um die CA-Zertifikate sicher erstellt/aktualisiert, wo sie sollen, versuchen Sie und fügen Sie (nach this answer) update-ca-certificates:

apk add ca-certificates 
update-ca-certificates 

In Ihrem Fall:

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

Das erzeugte diesen Fehler: WARNUNG: ca-certificates.crt enthält nicht genau ein Zertifikat oder CRL: skipping – Greg

+0

Vergleichen Alpine und Busybox Ich bemerke auch, dass Busybox NSS-Bibliotheken und Alpine nicht hat. Nicht sicher, ob das wichtig war, also fügte ich nss als ein weiteres 'add' hinzu. Leider auch keine Würfel dazu. – Greg

+0

@Greg Verwenden Sie Alpine 3.2? (da dies in 3.2 behoben sein soll: https://github.com/gliderlabs/docker-alpine/issues/30) – VonC

Verwandte Themen