Node.js 在Docker Alpine图像中创建图像大小较小的非root用户?

Node.js 在Docker Alpine图像中创建图像大小较小的非root用户?,node.js,docker,alpine,Node.js,Docker,Alpine,我正在使用docker nodenode:alpine构建容器,但我想以非root用户的身份启动我的节点应用程序。 仅使用adduser和addgroup添加用户和组,与以root用户身份运行时相比,图像的大小增加了300MB 使用alpine testing repo中的shadow也可以实现同样的效果(即将我的图像大小增加300MB)。 运行echo>>/etc/apk/repositories 有没有任何工具或建议如何创建非root用户,同时又不会大幅增加映像的大小?一个解决方案是将存储驱

我正在使用docker node
node:alpine
构建容器,但我想以非root用户的身份启动我的节点应用程序。 仅使用
adduser
addgroup
添加用户和组,与以root用户身份运行时相比,图像的大小增加了300MB

使用alpine testing repo中的
shadow
也可以实现同样的效果(即将我的图像大小增加300MB)。 运行echo>>/etc/apk/repositories


有没有任何工具或建议如何创建非root用户,同时又不会大幅增加映像的大小?

一个解决方案是将存储驱动程序从aufs切换到设备映射器,如前所述

或者,另一种解决方案是直接从主机复制资源,并在相同的
copy
指令中设置所有者

COPY [--chown=<user>:<group>] <src>... <dest>
COPY[--chown=:]。。。

既然我不能发表评论,请不要理会谢尔盖·亚罗茨基的回答。这是一个危险的误导性答案,也是错误的

例如,请阅读以下内容:除非您确实需要,否则为什么您永远不应该在容器中以root身份运行


但是,您可以使用docker run-u运行容器以手动指定用户。

您可以提供完整的docker文件。运行adduser或addgroup不会影响大小。运行chown和chmod并不感谢您的链接。使用
--chown
标志以及
COPY
ADD
命令可以解决此问题,图像大小将与原始大小相同。