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

在Choreo中Docker构建React应用遇CKV_CHOREO_1错误求助

Choreo中Docker构建React应用的CKV_CHOREO_1错误原因解析

我正尝试在Choreo中通过Docker构建部署React应用,使用了如下示例Dockerfile:

FROM node:18-alpine

# Build arguments for user/group configurations
ARG USER=asgusr
ARG USER_ID=10014
ARG USER_GROUP=asggrp
ARG USER_GROUP_ID=10014
ARG USER_HOME=/home/app

# Create a user group and a user
RUN addgroup -S -g ${USER_GROUP_ID} ${USER_GROUP} \
    && adduser -S -D -h ${USER_HOME} -G ${USER_GROUP} -u ${USER_ID} ${USER}

# Create app directory
WORKDIR ${USER_HOME}

# Set a non-root user
USER ${USER_ID}

# Copy the rest of the application code to the container
COPY --chown=${USER}:${USER_GROUP} . .

# Set environment variables
ENV HOST="0.0.0.0"
ENV DISABLE_DEV_SERVER_HOST_CHECK=true
ENV HTTPS=false

# Install dependencies
RUN npm install

# Expose port 3000
EXPOSE 3000

# Start the application
CMD ["npm", "start"]

但构建过程中出现如下错误:

CKV_CHOREO_1
Ensure USER is set to a value between 10000 and 20000 (Eg. USER 10001)

错误原因

CKV_CHOREO_1是Choreo平台的内置容器安全校验规则,要求容器运行时使用的用户ID(UID)必须落在10000-20000的专属区间内。

你的Dockerfile中虽然通过ARG USER_ID=10014定义了符合范围的UID,也执行了USER ${USER_ID}切换用户,但问题在于:Choreo的安全检查器只会直接解析USER指令的字面内容,不会处理构建参数(ARG)的动态替换。

检查器看到的是USER ${USER_ID}这个占位符,而非实际的数值10014,因此判定你未设置符合要求的用户ID,触发了该错误。

修复方案

将USER指令中的构建参数替换为具体的数值或已创建的用户名:

  • 方式一:使用具体UID数值
    # 替换原USER ${USER_ID}
    USER 10014
    
  • 方式二:使用已创建的用户名
    # 替换原USER ${USER_ID}
    USER asgusr
    

修改后,Choreo的安全检查器就能识别到用户ID在允许范围内,顺利通过校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:55:02