1
在docker build期间,我需要运行一个bash脚本,它设置了一些环境变量。在docker build期间执行配置bash脚本
脚本看起来是这样的:
#!/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构建过程中设置环境变量。
谢谢,但我能做些什么,如果我有一个额外的运行后的shell脚本取决于设置的环境变量? 'RUN/configure.sh' < - 这取决于事先设置的环境变量。让他们不在一起是因为孤立和结构的原因。 – sceiler
然后在运行configure.sh之前获取您的shell。例如:'RUN源myscript.sh && configure.sh' – Alkaline