加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Docker ENTRYPOINT变量未结转到CMD中

发布时间:2020-12-16 03:22:06 所属栏目:安全 来源:网络整理
导读:我有一个基本映像,它在ENTRYPOINT shell脚本docker-entry.sh中导出了许多变量. 现在,我使用基本映像并通过mongo-entry.sh运行CMD.我希望在mongo-entry.sh中访问从ENTRYPOINT导出的变量. 我可以看到输出了docker-entry.sh中变量的日志语句,但是我无法在mongo-

我有一个基本映像,它在ENTRYPOINT shell脚本docker-entry.sh中导出了许多变量.

现在,我使用基本映像并通过mongo-entry.sh运行CMD.我希望在mongo-entry.sh中访问从ENTRYPOINT导出的变量.

我可以看到输出了docker-entry.sh中变量的日志语句,但是我无法在mongo-entry.sh中访问它

我已经尝试在我的DockerFile中将docker-entry.sh和mongo-entry.sh称为ENTRYPOINT

码:

基本映像ENTRYPOINT docker-entry.sh

 export var1 = "var1"

当前图像

FROM 'baseimage'
COPY ["mongo-entry.sh"]
CMD ["mongo-entry.sh"]

mongo-entry.sh

echo "var1=$VAR1"

乌普图

var1=
最佳答案
我怀疑有1-2个问题:

> ENTRYPOINT和CMD不是从FROM图像继承的
>您可能正在使用ENTRYPOINT | CMD的exec形式

ENTRYPOINT和CMD有两种形式,即shell和exec形式. exec形式“不调用命令外壳”,因此您将不会获得环境变量处理:

https://docs.docker.com/engine/reference/builder/#cmd

这是显示通过FROM’d图像传递的ENV值的示例:

echo '
FROM bash
ENV DOG=Freddie
ENTRYPOINT echo "dog=${DOG}"
' | docker build --tag=1st --file=- .
echo '
FROM 1st
ENV CAT=Emmett
ENTRYPOINT echo "dog=${DOG}" "cat=${CAT}"
' | docker build --tag=2nd --file=- .
docker run 1st
docker run 2nd

结果是:

dog=Freddie
dog=Freddie cat=Emmett

注意:${DOG}(及其值)是从1st继承的

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读