在docker构build期间执行configurationbash脚本

在docker build期间,我需要运行一个bash脚本,它设置了一些环境variables。

脚本看起来像这样:

#!/bin/bash export ENVVAR=TEST export HOST=local export PORT=port 

我尝试以不同的方式在我的dockerfile中调用这个脚本,但是他们都没有工作。 我试过这些:

 ADD ./myscript.sh RUN chmod +x /myscript.sh;\ /bin/bash -c 'source ./myscript.sh';\ /bin/bash -c 'source /myscript.sh';\ /bin/bash -c source ./myscript.sh;\ /bin/bash -c source /myscript.sh;\ source ./myscript.sh;\ source /myscript.sh;\ /myscript.sh;\ ./myscript.sh;\ ENTRYPOINT ["/bin/bash"] 

当然,我在RUN中只有这些命令中的一个,我只是把它们分组在一起。

如果我运行容器,并使用source ./myscript.sh它按预期工作。

由于多种限制和其他原因,我不可能使用docker compose,-e参数,dockerfile中的ENV KEY VALUE或类似的方法。 我需要在docker构build过程中设置环境variables。

你根本就没有find在你的入口点指定的shell。 只需将您的myscript.sh添加到您的图像(使用COPY而不是ADD)。

 COPY myscript.sh /usr/local/bin 

然后将它源于实际由入口点启动的shell。

 docker run myimage source /usr/local/bin/myscript.sh 

顺便说一句,myscript.sh是非常不具有描述性的。 你可以使用env.sh作为例子。