当我尝试在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
失败?
答案 0 :(得分:3)
看起来您正在尝试解压缩/文件夹中的存档。
实际上,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用户拥有,你将把它解压缩到他的主目录中。