【发布时间】:2019-10-31 13:51:12
【问题描述】:
我需要在 docker 容器启动后设置一些环境变量。当 docker 启动 env X 获取值时,我想使用以下命令将 env Y 设置为值 X 的第一部分: Y=$(echo $X | cut -d'@' -f 1)
有什么办法吗?
我在 Dockerfile 中尝试了 ENTRYPOINT 和 CMD,但它不起作用。 docker将部署在Kubernetes集群上,我也尝试在config.yaml文件中设置它们,但它也不起作用。
【问题讨论】:
-
也许 docker 镜像有一个在启动时运行的脚本。这是公开图片吗?
-
你可以在Docker镜像中使用
ENTRYPOINT ["do_something.sh"],在do_something.shbash脚本中执行Y=$(echo $X | cut -d'@' -f 1)? -
我是用CMD做的,不知道CMD和ENTRYPOINT有什么区别。我意识到我需要使用“source”,所以命令将在当前的 shell 环境中执行。所以我添加了 CMD["source ./script.sh"] 但它不起作用。我不得不在 docker 映像中手动执行源代码,但我不想要它。
标签: docker environment-variables dockerfile