无法将DockerFile中的zip文件解压缩为非root用户

时间:2018-01-20 11:23:57

标签: docker

当我尝试在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失败?

1 个答案:

答案 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用户拥有,你将把它解压缩到他的主目录中。