无法在Dockerfile

时间:2015-06-09 20:16:17

标签: docker

这是构建Docker镜像时收到的错误消息:

  

步骤18:运行mkdir / var / www / app&& chown luqo33:www-data / var / www / app   --->在7b5854406120 mkdir中运行:无法创建目录'/ 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:无法创建目录'/ var / www / app':没有这样的文件或目录”声音如此荒谬 - 当然没有这样的目录。我想创造它。这有什么不对?

3 个答案:

答案 0 :(得分:137)

问题是/var/www也不存在,默认情况下mkdir不递归 - 它希望直接父目录存在。

使用:

mkdir -p /var/www/app

...或者在Dockerfile中到达此点之前安装一个创建/var/www的包。

答案 1 :(得分:9)

您也可以简单地使用

WORKDIR /var/www/app

如果不存在,它将自动创建文件夹。

然后切换回您需要的目录。

答案 2 :(得分:-1)

除了以前的用例之外,如果要在docker-compose up上创建新的虚拟文件夹,也可以使用Docker Compose创建目录:

    volumes:
  - .:/ftp/
  - /ftp/node_modules
  - /ftp/files