2017-09-20 69 views
-1

我有一個簡單DockerfileDockerfile COPY文件失敗

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/ 

使用build命令:

docker build -t rkevinburton/myagsourceapi . 

最後一行將返回錯誤:

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 

所有其他「COPY '行無誤地執行。我不清楚這意味着什麼,或者我的Dockerfile應該如何改變。我正在使用這個COPY主要來自於docker hub for php的文檔。這可能是由於/ usr/local/etc/php的只讀屬性。但是我無法從錯誤中知道。想法?

+0

跟它本地'MyAgSourceAPI/conf目錄/ PHP /的Apache2/php.ini'文件不存在。你能證實'文件MyAgSourceAPI/conf目錄/ PHP /的Apache2/php.ini'返回的東西,該文件是可讀? –

+0

我似乎無法得到正確的格式,但像「ls -l命令C:\用戶\ rburton \代碼\ MyAgSourceAPI \的conf \ PHP \ Apache2的\ php.ini中」的東西從PowerShell窗口給我的「模式」「 - a ----'。我已經查看了此文件的Windows屬性,並且未選中「只讀」標誌。 –

+0

確保文件'php.ini'的情況都比較低。 Linux和容器是當它涉及到文件和文件夾和PowerShell區分大小寫不 –

回答

0

更改線路

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

哪個副本的內容(只有一個文件)的作品。雖然我仍然不確定如何複製一個文件。

-1

什麼解決這個問題對我來說,我需要確保所有我將要複製的文件必須在同一文件夾作爲我Dockerfile(不是在它上面的任何文件夾),這是相同的文件夾中我運行docker build命令。 如果我把這些文件夾之外 - 如描述的COPY會失敗。

+0

情況並非如此。複製與子目錄一起工作,沒有問題。 –