通过bash脚本设置容器的环境变量不起作用



我试图通过bash脚本设置docker容器的环境变量。

CMD ["/bin/bash", "-c","source runservice.sh"]

运行service.sh

#!/usr/bin/env bash
export "foo"="bar"

现在,当我进入容器并执行printenv时,它并没有设置环境变量。但如果我在容器中运行相同的命令,env变量就会被设置好。使用bash脚本导出的正确方法是什么?

它没有设置环境变量

它为CMD构建阶段的持续时间设置环境。当然,它对其他任何事情都没有影响——在CMD阶段运行的shell将退出。请参阅dockerfile文档。

使用bash脚本导出的正确方法是什么?

没有正确的方法。影响环境的正确方法是使用ENV

在使用入口点的上下文中有一种解决方法——您可以将入口点设置为首先获取变量的shell(或自定义进程(。

ENTRYPOINT ["bash", "-c", "source runservice.sh && "$@"", "--"]

最新更新