当我尝试在 DockerFile 中解压 zip 文件时,不断收到以下错误
checkdir error: cannot create my-archive
Permission denied
unable to process my-archive/data/sample.jar
The command '/bin/sh -c unzip /home/kong/my-archive.zip' returned a non-zero code: 2
在我的 DockerFile 中我有:
RUN useradd -ms /bin/bash kong
RUN echo "kong:password" | chpasswd
RUN adduser kong sudo
USER kong
RUN wget "${url}/my-archive.zip" -P /home/kong
RUN unzip /home/kong/my-archive.zip
如果我这样做,它就会起作用:
USER root
RUN unzip /home/kong/my-archive.zip
但我希望能够以非 root 用户身份执行此操作。
为什么非 root 用户会失败kong
?
您似乎正在尝试将存档解压缩到 / 文件夹中。
事实上,unzip
默认情况下,命令将存档解压缩在当前目录中。
另外,zip 文件是以 root 身份下载的,kong 用户可能无法读取。
尝试按如下方式更改 Dockerfile:
RUN useradd -ms /bin/bash kong
RUN echo "kong:password" | chpasswd
RUN adduser kong sudo
USER kong
WORKDIR /home/kong
RUN wget "${url}/my-archive.zip" -P /home/kong
RUN unzip /home/kong/my-archive.zip
这样,.zip 文件将归 kong 用户所有,您将把它解压缩到他的主目录中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)