作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在像这样在Docker中运行构建:
docker run --user $(id -u):$(id -g) --rm --network=host -v `pwd`:${SRC_MOUNT_DIR} my-image:latest my-build-script.sh
--user
设置本地用户,以避免root拥有的文件出现在我的主目录中。
sudo apt install
来安装其他构建中的某些依赖项,但这需要root用户。
sudo
..?
最佳答案
如果容器内的用户可以运行sudo apt install ...
,那么您也可以以root用户身份运行容器中的所有内容,因为任何攻击都可以sudo ...
任何攻击代码。代替:
apt install
,或者是否可以在图像中执行此操作。最好在镜像中安装二进制文件并进行部署,而不是每次运行容器时都重新安装应用程序。 gosu
这样的工具正是为此而设计的。对于执行此操作的入口点的示例,我有一个带有entrypoint script的docker-base镜像,该镜像添加了gosu
并使用exec
运行CMD以避免/bin/sh
作为pid 1(这有助于信号处理)。 关于docker - Docker:如何为本地用户授予root权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253038/
我是一名优秀的程序员,十分优秀!