在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
相关产品推荐
相关产品推荐

