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