Composer容器中的root用户

ser*_*hei 10 root user-permissions composer-php docker

在Docker容器中运行Composer时,我有一个基本问题.

是否可以在容器内运行composeras用户root?我很困惑,创建文件的所有者(例如使用时composer require)是root.

root在容器内部运行OK最佳实践?

Joh*_*ser 12

在容器中使用root是可以的,因为容器有很多删除的权限.它无法访问硬件或装载路径.它本质上是一个非特权用户.

安装应用程序绝对应该在容器内完成.在Dockerfile该构建的图像具有要安装到开始与所述应用程序,并且所发生的容器内.如果您正在使用容器来运行使用节点等构建的自定义应用程序(例如php7),则执行安装的构建容器是将应用程序的更新和安装行为与主机系统隔离开的正确方法.

在使用Docker部署应用程序时,基本上不应该在容器外部运行任何东西.例如,任何cron脚本都应运行docker exec container script.sh或类似于在容器内运行定期作业.

通常,如果应用程序需要root权限来执行基于配置更新模块之类的操作,我会使用它docker-compose来建立一个build以root身份执行所有操作然后退出的容器.我使用cap-drop实际应用程序容器的一个部分来删除尽可能多的功能.

许多应用程序需要setuidsetgid删除权限 - 例如nginx需要这些权限以便它可以更改rootwww-data:www-data. nginx如果它以用户身份出现将失败www-data.应用程序在进行更改后删除这些功能.