假設我有一個Dockerfile運行腳本的
RUN ./myscript.sh
我怎么能寫,myscript.sh以便它可以檢測自己是否RUN在 a 期間由命令啟動docker build?
#! /bin/bash
# myscript.sh
if <What should I do here?>
then
echo "I am in a docker build"
else
echo "I am not in a docker build"
fi
理想情況下,它不應該要求對 進行任何更改Dockerfile,以便 的呼叫者myscript.sh不需要有關 的專門知識myscript.sh。
uj5u.com熱心網友回復:
嘗試這個 :
#!/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
uj5u.com熱心網友回復:
在你的 Dockerfile 中,你可以試試這個來運行腳本
ADD myscript.sh .
RUN chmod x myscript.sh
ENTRYPOINT ["myscript.sh"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350245.html
