Yan*_* Bo 5 linux bash shell docker dockerfile
假设我有一个Dockerfile运行脚本的程序,
RUN ./myscript.sh
Run Code Online (Sandbox Code Playgroud)
我怎样才能编写以便它可以检测自身是否在 a 期间myscript.sh由命令启动?RUNdocker build
RUN ./myscript.sh
Run Code Online (Sandbox Code Playgroud)
理想情况下,它不需要对 进行任何更改Dockerfile,以便 的调用者myscript.sh不需要有关 的专业知识myscript.sh。
尝试这个 :
#!/bin/bash
# myscript.sh
isDocker(){
local cgroup=/proc/1/cgroup
test -f $cgroup && [[ "$(<$cgroup)" = *:cpuset:/docker/* ]]
}
isDockerBuildkit(){
local cgroup=/proc/1/cgroup
test -f $cgroup && [[ "$(<$cgroup)" = *:cpuset:/docker/buildkit/* ]]
}
isDockerContainer(){
[ -e /.dockerenv ]
}
if isDockerBuildkit || (isDocker && ! isDockerContainer)
then
echo "I am in a docker build"
else
echo "I am not in a docker build"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |