2017-09-20 56 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

情况并非如此。复制与子目录一起工作,没有问题。 –