Подтвердить что ты не робот

Невозможно выполнить RUN mkdir в файле Dockerfile

Это сообщение об ошибке, которое я получаю при создании изображения Docker:

Шаг 18: RUN mkdir/var/www/app && & chown luqo33: www-data/var/www/app --- > Запуск в 7b5854406120 mkdir: невозможно создать каталог '/var/www/app': нет такого файла или каталога

Это фрагмент файла Docker, который вызывает ошибку:

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 ': такой файл или каталог не звучит так бессмысленно - конечно, такого каталога нет. Я хочу создать его. Что здесь не так?

4b9b3361

Ответ 1

Проблема заключается в том, что /var/www тоже не существует, а mkdir по умолчанию не является рекурсивным - он ожидает, что существует ближайший родительский каталог.

Использование:

mkdir -p /var/www/app

... или установите пакет, который создает /var/www до достижения этой точки в файле Docker.

Ответ 2

При создании поддиров, зависающих от несуществующих родительских dir (s), вы должны передать флаг -p в mkdir... Обновите свой файл Docker с помощью

RUN mkdir -p ... 

Я проверил это и его правильную

Ответ 3

Вы также можете просто использовать

WORKDIR /var/www/app

Он автоматически создаст папки, если они не существуют.

Затем переключитесь обратно в каталог, в котором вы должны быть.