Невозможно создать каталог. Разрешение отклонено внутри контейнера докеров

Невозможно создать папку во время создания изображения с пользователем root, добавленным в группу sudoers. Вот мой файл Docker:

FROM ubuntu:16.04

RUN apt-get update && \
    apt-get -y install sudo

RUN adduser --disabled-password --gecos '' newuser \
    && adduser newuser sudo \
    && echo '%sudo ALL=(ALL:ALL) ALL' >> /etc/sudoers

USER newuser

RUN mkdir -p /newfolder
WORKDIR /newfolder

Я получаю ошибку: mkdir: cannot create directory '/newfolder': Permission denied

Ответ 1

Файловые системы внутри контейнера Docker работают так же, как файлы, находящиеся за пределами контейнера Docker: вам нужны соответствующие разрешения, если вы собираетесь создавать файлы или каталоги. В этом случае вы пытаетесь создать /newfolder как пользователь без полномочий root (поскольку директива USER изменяет UID, используемый для запуска любых последующих команд). Это не сработает, потому что / принадлежит root и имеет режим dr-xr-xr-x.

Попробуйте вместо этого:

RUN mkdir -p /newfolder
RUN chown newuser /newfolder
USER newuser
WORKDIR /newfolder

Это создаст каталог как root, а затем chown it.

Ответ 2

docker cp some_dir mysql:/opt

Вместо создания каталога скопируйте пустой каталог или файл по этому пути в контейнере, используя docker cp.