在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作为例子。