diff --git a/.jenkins/Dockerfile b/.jenkins/Dockerfile index e4acf42..b126825 100644 --- a/.jenkins/Dockerfile +++ b/.jenkins/Dockerfile @@ -15,6 +15,10 @@ ARG VAR_BASE_IMAGE # ============================================================ FROM ${VAR_BASE_IMAGE} AS builder +# 基础镜像末尾设置了 USER esxi,这里切回 root, +# 否则下面的 yum install 会因权限不足而失败 +USER root + # 镜像作者信息(仅元数据,不影响体积) LABEL MAINTAINER="djangoadmin@126.com" @@ -84,6 +88,10 @@ RUN pip3 install --prefix=/install -r requirements.txt && \ # ============================================================ FROM ${VAR_BASE_IMAGE} AS runtime +# 基础镜像末尾设置了 USER esxi,这里切回 root, +# 否则下面的 yum install 会因权限不足而失败 +USER root + # 镜像作者信息 LABEL MAINTAINER="djangoadmin@126.com" @@ -150,6 +158,17 @@ WORKDIR /opt/apps # ------------------------------------------------------------ COPY ${VAR_PYFILE_PATH}/ ./ +# ------------------------------------------------------------ +# 修正工作目录属主,保证 esxi 用户可读写 +# (root 身份 COPY 进来的文件属主是 root,需改回 esxi) +# ------------------------------------------------------------ +RUN chown -R esxi:esxi /opt/apps + +# ------------------------------------------------------------ +# 切回非 root 用户运行应用(安全加固) +# ------------------------------------------------------------ +USER esxi + # ------------------------------------------------------------ # 暴露端口(仅声明,实际映射由 docker run -p 决定) # ------------------------------------------------------------