我正在寻找如何从 Dockerfile 中继承的 docker 映像存储和恢复 USER。例如,我的父映像指定默认服务并将 USER 设置为 serviceuser。
现在我有一个从父映像继承的依赖映像,以 root 身份进行了一些修改,但希望将 docker 映像用户保留为 serviceuser。
我可以手动执行此操作:
父 Dockerfile:
from default
USER serviceuser
ENTRYPOINT ["some-service"]
Run Code Online (Sandbox Code Playgroud)
其他 Dockerfile:
from parent
USER root
RUN apt-get install -y cool-stuff
USER serviceuser
Run Code Online (Sandbox Code Playgroud)
但是,这样当我更改父级中的用户时,我必须更新所有子图像。有没有办法在子 Dockerfile 中动态地执行此操作?
我想到的其他选项是在子脚本中使用 sudo 或以 root 身份运行入口点(即不设置 USER)并在启动脚本中执行服务用户切换。但两者都有安全隐患。
小智 6
如果您是父图像的作者,您可以这样做:
ENV serviceuser=foo
RUN useradd $serviceuser
USER $serviceuser
Run Code Online (Sandbox Code Playgroud)
儿童图像:
USER root
RUN apt-get install -y cool-stuff
USER $serviceuser
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |