无法创建目录.在 docker 容器内拒绝权限



无法在映像构建过程中创建文件夹,并将非 root 用户添加到 sudoers 组。这是我的 Dockerfile:

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

Docker 容器中的文件系统的工作方式就像 Docker 容器外的文件一样:如果要创建文件或目录,则需要适当的权限。 在这种情况下,您尝试以非 root 用户身份创建/newfolder(因为USER指令更改了用于运行其后任何命令的 UID(。 这是行不通的,因为/root所有,并且具有模式dr-xr-xr-x

请尝试:

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

这会将目录创建为root,然后chown它。

这是一个对我有用的过程,可以创建具有非用户权限的文件夹

FROM solr:8
USER root
RUN mkdir /searchVolume
RUN chown solr:solr /searchVolume
USER solr

最后一行将登录名放回solr(或您拥有的任何用户(。

对我有用的是在 docker 容器所在的目录上运行 chmod 777。由于您的新容器是新用户,因此它无权在本地计算机上创建子目录,因此 chmod 777 授予该权限

最新更新