You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dockerfile中以非root用户kong解压zip文件失败原因咨询

问题原因与解决办法

这个报错的核心原因是当前工作目录的权限问题,咱们一步步拆解清楚:

  1. 你切换到kong用户后,Docker默认的工作目录还是/(属于root用户),并没有自动切换到kong的家目录/home/kong。
  2. 当你执行unzip /home/kong/my-archive.zip时,unzip默认会把文件解压到当前工作目录(也就是/),但kong用户没有权限在/下创建my-archive目录,自然就触发了Permission denied错误。
  3. 而用root用户执行时,本身就拥有系统最高权限,能在任意目录创建文件/文件夹,所以解压能成功。

解决方法(任选其一即可)

方法1:明确指定解压目录

在unzip命令里直接指定要解压到/home/kong,避开权限受限的目录:

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 -d /home/kong

方法2:提前切换工作目录到/home/kong

用WORKDIR指令把后续命令的工作目录切换到kong的家目录,这样所有操作都在有权限的目录下进行:

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"
RUN unzip my-archive.zip

方法3:临时切换目录执行解压

在unzip前用cd命令切换到/home/kong,确保解压操作在权限范围内完成:

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 cd /home/kong && unzip my-archive.zip

内容的提问来源于stack exchange,提问作者u123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:42:01