我编写了以下 Docker 命令,该命令仅运行一个名为的 bash 脚本build
RUN cd dir && ./build
但是,该脚本使用sudo
,它在我的容器中不存在。如何为它创建一个别名,sudo
它不会解析任何内容,因此sudo something
只需按something
inside运行build
,而不编辑build
脚本?
答案1
为了使用别名,您必须编辑脚本并在脚本开头使用 sudo 的行上方添加以下内容。
sudo() {
"$@"
}
export -f sudo
或者,您可以通过创建一个不具有sudo
.然后,您可以运行新文件而不是./build
RUN cd dir && sed -e 's/sudo //g' ./build > ./buildme && chmod +x ./buildme && ./buildme
首先,sed
命令删除sudo
并且-e
选项回显输出而不编辑原始文件。使用以下命令将输出重定向到名为“buildme”的新文件> ./buildme
sudo -e 's/sudo //g' ./build > ./buildme
然后,chmod
用于使新文件可执行:
chmod -x ./buildme
最后,./buildme
使用 代替./build
:
./buildme