存储和恢复inheritance的Dockerfile USER设置
我正在寻找如何存储和恢复Dockerfile中inheritance的docker镜像的USER。 例如,我的父图像指定一个默认服务,并将USER设置为serviceuser。
现在我有一个依赖的图像,从父图像inheritance,作为根进行一些修改,但要保持docker镜像用户serviceuser。
我可以手动做到这一点:
父Dockerfile:
from default USER serviceuser ENTRYPOINT ["some-service"]
其他Dockerfile:
from parent USER root RUN apt-get install -y cool-stuff USER serviceuser
但是,这种方式,当我改变父母的用户,我不得不更新所有的孩子的形象。 有没有一种方法在子Dockerfile中dynamic地做到这一点?
我想过的其他选项是在子脚本中使用sudo或以root身份运行入口点(即不设置USER),并在启动脚本中执行服务用户切换。 但两者都有安全隐患。
如果你是父图像的作者,你可以这样做:
ENV serviceuser=foo RUN useradd $serviceuser USER $serviceuser
小孩形象:
USER root RUN apt-get install -y cool-stuff USER $serviceuser