2017-09-20 6 views
-1

Ich habe eine einfache DockerfileDockerfile COPY Datei nicht

FROM php:7.1-apache 
LABEL maintainer="[email protected]" 
COPY MyAgsourceAPI /var/www/MyAgsourceAPI 
COPY MyAgsourceAPI/conf/php/drivers /usr/lib/apache2/modules/ 
COPY MyAgSourceAPI/conf/php/apache2/php.ini /usr/local/etc/php/ 

den Build-Befehl:

docker build -t rkevinburton/myagsourceapi . 

Die letzte Zeile gibt den Fehler:

Step 5/5 : COPY MyAgSourceAPI/conf/php/apache2/php.ini /usr/local/etc/php/ 
COPY failed: stat /var/lib/docker/tmp/docker-builder231753667/MyAgSourceAPI/conf/php/apache2/php.ini: no such file or directory 

Alle anderen COPY‘ Zeilen werden ohne Fehler ausgeführt. Mir ist nicht klar, was das bedeutet oder wie sich meine Dockerfile ändern soll. Ich nehme diese COPY hauptsächlich aus der Dokumentation über Docker Hub für PHP. Dies kann auf eine schreibgeschützte Natur von/usr/local/etc/php zurückzuführen sein. Aber ich kann nicht von dem Fehler erzählen. Ideen?

+0

Es heißt, die lokale 'MyAgSourceAPI/conf/php/apache2/php.ini'-Datei existiert nicht. Können Sie bestätigen, dass 'file MyAgSourceAPI/conf/php/apache2/php.ini' etwas zurückgibt und die Datei lesbar ist? –

+0

Ich kann nicht scheinen, die Formatierung richtig zu bekommen, aber etwas wie 'ls -l C: \ Benutzer \ rburton \ code \ MyAgSourceAPI \ conf \ php \ apache2 \ php.ini' aus dem PowerShell-Fenster gibt mir einen 'Modus' von '- a ---- 'Ich habe mir die Windows-Eigenschaften für diese Datei angeschaut und sie hat das' Read-only '-Flag deaktiviert. –

+0

Stellen Sie sicher, dass die Datei 'php.ini' ganz unten ist. Linux und Container sind case sensitive, wenn es um Dateien und Ordner geht und Powershell ist nicht –

Antwort

0

Ändern der Linie

COPY MyAgsourceAPI/conf/php/apache2 /usr/local/etc/php/ 

Welche kopiert den Inhalt (die nur eine Datei ist) funktioniert. Obwohl ich immer noch nicht sicher bin, wie man nur eine einzige Datei kopiert.

-1

was das Problem für mich gelöst ist, dass ich sicherstellen muss, dass alle Dateien, die ich KOPIEREN bin, im selben Ordner wie meine Dockerfile (nicht in einem Ordner darüber) sein müssen, der derselbe Ordner ist Ich führe den Docker-Build-Befehl aus. Wenn ich sie außerhalb dieses Ordners platziert habe, würde die COPY wie beschrieben fehlschlagen.

+0

Dies ist nicht der Fall. Kopieren funktioniert mit Unterverzeichnissen ohne Problem. –

Verwandte Themen