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

Dockerfile基于nginx镜像触发Dockle的CIS-DI-0010错误的排查与解决

解决Dockle检测nginx镜像触发CIS-DI-0010错误的问题

错误原因

触发CIS-DI-0010错误的核心逻辑:

  • NGINX_GPGKEY是nginx官方基础镜像构建阶段临时定义的变量,仅用于获取验证nginx软件包签名的GPG密钥,本身并非敏感凭据。
  • Dockle的扫描规则会对包含"GPGKEY"这类关键词的环境变量做敏感检测,即便该变量只是在构建命令的子shell中临时使用、并未保留到最终镜像的运行环境里,Dockle扫描镜像构建历史时仍会触发误判。

解决方法

1. 无需修改现有Dockerfile(推荐)

该变量仅存在于基础镜像的构建历史中,不会进入最终镜像的运行环境,不存在实际的凭据泄露风险,完全可以忽略该误报。

2. 更换基础镜像(可选)

若希望彻底避免这类检测,可尝试使用nginx的alpine版本作为基础镜像:

FROM nginx:alpine

注意:alpine版本基于musl libc,与debian/ubuntu版本的glibc存在差异,需验证你的应用(如hello.fcgi)是否能正常运行。

让Dockle不再提示该错误的方式

方式1:命令行参数忽略指定键

运行Dockle检测时,添加--accept-key参数指定忽略NGINX_GPGKEY:

dockle --accept-key NGINX_GPGKEY your-image-tag

方式2:配置文件全局忽略

创建dockle.yaml配置文件,添加如下内容,后续扫描会自动忽略该键:

acceptKeys:
  - NGINX_GPGKEY

你的Dockerfile

FROM nginx:latest

WORKDIR /

RUN apt-get update && apt-get install -y \
    gcc \
    libfcgi-dev \
    spawn-fcgi \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN chmod 777 /var/cache/nginx/ /var/run/

COPY server/nginx/nginx.conf /etc/nginx/
COPY server/hello.c /etc/nginx/
COPY server/span-fcgi.sh /etc/nginx/

RUN chmod +x /etc/nginx/span-fcgi.sh \
    && gcc -o /etc/nginx/hello.fcgi /etc/nginx/hello.c -lpthread -lfcgi \
    && usermod -aG root,gnats,daemon,disk,sudo nginx

EXPOSE 81

USER nginx

CMD ["/etc/nginx/span-fcgi.sh"]

span-fcgi.sh脚本

#!/bin/bash  
spawn-fcgi -a 127.0.0.1 -p 8080 -f /etc/nginx/hello.fcgi -F 1  
nginx -g 'daemon off;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:55:28