基于eclipse-temurin:17-focal镜像添加非root用户失败求助
解决eclipse-temurin:17-focal镜像中创建非root用户失败的问题
问题出在你使用的命令适配的是Alpine Linux环境,而eclipse-temurin:17-focal基于Ubuntu,GNU版本的adduser/addgroup命令参数和Alpine的BusyBox版本不同,导致执行报错。
正确的Dockerfile写法
将创建用户的命令替换为Ubuntu兼容的版本:
FROM eclipse-temurin:17-focal WORKDIR /app COPY target/*.jar app.jar EXPOSE 8080 # 创建系统组和适配Ubuntu的系统用户 RUN addgroup --system demo && adduser --system --ingroup demo demo USER demo ENTRYPOINT ["java","-jar","/app.jar"]
关键说明
--system:创建系统级别的组和用户,这类用户的UID/GID低于1000,没有登录权限,更适合容器内的服务进程使用--ingroup:明确指定用户所属的组,避免创建额外的同名组
可选优化(如果需要写入权限)
如果你的应用需要向/app目录写入文件,需要提前调整目录权限,在创建用户后添加权限修改命令:
RUN addgroup --system demo && adduser --system --ingroup demo demo \ && chown -R demo:demo /app
内容的提问来源于stack exchange,提问作者user1555190
相关产品推荐
相关产品推荐

