【发布时间】:2019-10-09 10:45:27
【问题描述】:
我正在为一个镜像编写一个 Dockerfile,该镜像在运行时会按顺序执行以下两件事:
- 以 root 身份启动守护进程
- 以非 root 用户身份启动交互式 shell
问题在于 ENTRYPOINT 只能作为单个用户运行(无论 USER 在 Dockerfile 中的 ENTRYPOINT 之前最后设置的哪个用户)。在这种情况下,ENTRYPOINT 只能以 root 或非 root 用户身份运行。
我不能将 CMD 命令放在 ENTRYPOINT 之前,因为它们只会被 ENTRYPOINT 覆盖。
我怎样才能完成我所需要的?
【问题讨论】:
-
仅供参考:我有一个可行但肮脏的解决方法。我将非 root 用户放在 sudoers 中,没有密码,所以我的入口点脚本现在可以使用 sudo 来启动守护进程,而无需提供密码。
标签: docker dockerfile