2016-07-20 23 views
-1

Ich versuche eine Dockerfile zu verwenden, um einen kleinen Export zu erstellen, der Perl, curl und git zur Verwendung mit GitHub als Chroot-Umgebung enthält . Jeder Versuch, entweder "curl" oder "git" in die Dockerdatei zu setzen, führt dazu, dass Verzeichnisse aus der exportierten TAR-Datei entfernt werden. Ich kann Perl mit anderen Paketen wie Firefox kombinieren und am Ende mit einem brauchbaren tar enden.Beim Erstellen einer Dockerfile kann ich nicht Perl und curl/git in der gleichen Definition haben

Dies ist die Dockerfile. Wie gesagt, wenn ich nur nach Perl oder irgendetwas anderes nach Curl/Git mit Perl frage, funktioniert es.

FROM gliderlabs/alpine:3.4 

RUN apk add --update \ 
    curl \ 
    perl-dev \ 
    git \ 
    && rm -rf /var/cache/apk/* 

ENTRYPOINT ["/usr/bin/perl", "-de0"] 

Alle Einblicke sind willkommen.

Antwort

0

Ein paar Dinge versuchen

  • zusätzlichen "RUN" versuchen Befehle für jeden installieren
  • den Cache nach jedem
  • Schritt entfernen, während Docker Aufbau Bild keine Cache-Option verwenden. docker build -no-cache
+0

Danke. Ich habe jeden von denen versucht. Wie oben erwähnt, enthält meine exportierte TAR-Datei keine ausführbaren Dateien. –

0

Ich lief Ihre Dockerfile ohne Frage:

$ cat df.alpine 
FROM gliderlabs/alpine:3.4 

RUN apk add --update \ 
    curl \ 
    perl-dev \ 
    git \ 
    && rm -rf /var/cache/apk/* 

$ docker build -t alpinetest -f df.alpine . 
Sending build context to Docker daemon 37.89 kB 
Step 1 : FROM gliderlabs/alpine:3.4 
3.4: Pulling from gliderlabs/alpine 
a03be5b52c0f: Pull complete 
Digest: sha256:f34605566fc0827029c786094d104703f68953a7845d5bf4334c4c50fea6200c 
Status: Downloaded newer image for gliderlabs/alpine:3.4 
---> eeae34df12d9 
Step 2 : RUN apk add --update  curl  perl-dev  git && rm -rf /var/cache/apk/* 
---> Running in 21aeec842908 
fetch http://alpine.gliderlabs.com/alpine/v3.4/main/x86_64/APKINDEX.tar.gz 
fetch http://alpine.gliderlabs.com/alpine/v3.4/community/x86_64/APKINDEX.tar.gz 
(1/9) Installing ca-certificates (20160104-r4) 
(2/9) Installing libssh2 (1.7.0-r0) 
(3/9) Installing libcurl (7.49.1-r0) 
(4/9) Installing curl (7.49.1-r0) 
(5/9) Installing expat (2.1.1-r1) 
(6/9) Installing pcre (8.38-r1) 
(7/9) Installing git (2.8.3-r0) 
(8/9) Installing perl (5.22.2-r0) 
(9/9) Installing perl-dev (5.22.2-r0) 
Executing busybox-1.24.2-r9.trigger 
Executing ca-certificates-20160104-r4.trigger 
OK: 69 MiB in 20 packages 
---> 7ee2fd822c7a 
Removing intermediate container 21aeec842908 
Successfully built 7ee2fd822c7a 

$ docker run --rm -it alpinetest /bin/sh 
/# which git 
/usr/bin/git 
/# which perl 
/usr/bin/perl 
/# which curl 
/usr/bin/curl 

/# perl -v 

This is perl 5, version 22, subversion 2 (v5.22.2) built for x86_64-linux-thread-multi 

Copyright 1987-2015, Larry Wall 

Perl may be copied only under the terms of either the Artistic License or the 
GNU General Public License, which may be found in the Perl 5 source kit. 

Complete documentation for Perl, including FAQ lists, should be found on 
this system using "man perl" or "perldoc perl". If you have access to the 
Internet, point your browser at http://www.perl.org/, the Perl Home Page. 

/# curl --version 
curl 7.49.1 (x86_64-alpine-linux-musl) libcurl/7.49.1 OpenSSL/1.0.2h zlib/1.2.8 libssh2/1.7.0 
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

/# git --version 
git version 2.8.3 

Wenn Ihre Ausgabe des obigen verschieden ist, aktualisieren Sie bitte Ihre Frage mit mehr Details.


Edit: Per Ihre Anfrage Ich habe auch einen Export und die Binär-Dateien zeigen, ohne Probleme nach oben:

$ docker create --name alpinetestc alpinetest /bin/true 
$ docker export alpinetestc | gzip >alpinetest.tgz 
$ tar -tvzf alpinetest.tgz usr/bin/git 
-rwxr-xr-x 0/0   1944216 2016-05-26 10:44 usr/bin/git 
$ tar -tvzf alpinetest.tgz usr/bin/curl 
-rwxr-xr-x 0/0   173912 2016-05-30 12:11 usr/bin/curl 
$ tar -tvzf alpinetest.tgz usr/bin/perl 
-rwxr-xr-x 0/0   9872 2016-05-16 06:22 usr/bin/perl 

Es scheint nicht, dass Sie genügend Details zur Verfügung gestellt haben, Ihr Problem zu erstellen.

+0

Ich hatte erwartet, diese in der TAR-Datei zu sehen. Meine generierte TAR-Datei enthält nur bin, dev und etc Top-Level-Ordner ..... Ich kann nicht finden, Perl, Curl oder Git ausführbare Dateien in ihnen. –

+0

Hier sind die Befehle, die zum Exportieren zur Verwendung in GitHub übergeben wurden.
docker build -f docker.perl -t docker.perl. docker erstellen --name docker.perl docker.perl/bin/true docker exportieren docker.perl | gzip> docker.perl.tar.gz –

+0

Ich habe einen Export ausgeführt und sie erschienen ohne Probleme. – BMitch