不能在Dockerfile中执行RUN mkdir

这是构buildDocker镜像时得到的错误消息:

步骤18:运行mkdir / var / www / app && chown luqo33:www-data / var / www / app —>运行在7b5854406120 mkdir:无法创build目录'/ var / www / app':没有这样的文件或目录

这是导致错误的Dockerfile的一个片段:

FROM ubuntu:14.04 RUN groupadd -r luqo33 && useradd -r -g luqo33 luqo33 <installing nginx, fpm, php and a couple of other things> RUN mkdir /var/www/app && chown luqo33:www-data /var/www/app VOLUME /var/www/app WORKDIR /var/www/app 

“mkdir:无法创build目录”/ var / www / app“:没有这样的文件或目录”声音如此荒谬 – 当然没有这样的目录。 我想创build它。 这里有什么问题?

问题是/var/www也不存在,并且默认情况下mkdir不是recursion的 – 它需要直接的父目录存在。

使用:

 mkdir -p /var/www/app 

…或者安装一个在你的Dockerfile中达到这个点之前创build一个/var/www的包。

当创build从不存在的父目录挂起的子目录时,您必须将-p标志传递给mkdir …请将您的Dockerfile更新为

 RUN mkdir -p ... 

我testing了这个和它的正确