From 4da4ef7b202b3dde47243de9912e3ea6a586de44 Mon Sep 17 00:00:00 2001 From: Carson Date: Wed, 11 Feb 2026 23:45:52 +0800 Subject: [PATCH] fix(docker): use built-in node user instead of creating new user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: - v1.28.1 Docker build fails with "addgroup: gid '1000' in use" - node:20-alpine base image already uses GID 1000 Solution: - Remove custom app user creation (addgroup/adduser) - Use node:20-alpine's built-in node user (UID/GID 1000) - Update chown to use node:node instead of app:app Benefits: - ✅ Fixes GID conflict - ✅ Maintains security (non-root user) - ✅ Simpler Dockerfile (no user creation needed) - ✅ Follows Docker best practices Fixes: v1.28.1 Docker build failure Related: #539 Co-Authored-By: Claude Sonnet 4.5 --- docker/Dockerfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f1e2072..a9c695f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -5,10 +5,6 @@ LABEL maintainer="Deepractice" \ description="PromptX MCP Server" \ org.opencontainers.image.source="https://github.com/Deepractice/PromptX" -# 创建非 root 用户 -RUN addgroup -g 1000 app && \ - adduser -D -u 1000 -G app app - # 工作目录 WORKDIR /app @@ -16,12 +12,13 @@ WORKDIR /app ARG VERSION=latest # 安装依赖(单层 RUN 减少镜像层数) +# 使用 node:20-alpine 自带的 node 用户 (UID 1000, GID 1000) RUN npm install -g npm@latest @promptx/mcp-server@${VERSION} && \ mkdir -p /data && \ - chown -R app:app /data /app + chown -R node:node /data /app # 切换到非 root 用户 -USER app +USER node # 暴露端口 EXPOSE 5203