shell – docker run脚本,用于导出env变量
发布时间:2020-12-15 21:35:55 所属栏目:安全 来源:网络整理
导读:我已经搜索了一些像 docker ENV vs RUN export这样的问题,它解释了这些命令之间的差异,但没有帮助解决我的问题. 例如,我有一个名为myscript的脚本: #!/bin/bashexport PLATFORM_HOME="$(pwd)" 在Dockerfile中有以下行: ...COPY myscript.sh /RUN ./myscrip
我已经搜索了一些像
docker ENV vs RUN export这样的问题,它解释了这些命令之间的差异,但没有帮助解决我的问题.
例如,我有一个名为myscript的脚本: #!/bin/bash export PLATFORM_HOME="$(pwd)" 在Dockerfile中有以下行: ... COPY myscript.sh / RUN ./myscript.sh 我还尝试在调用脚本之前使用ENTRYPOINT而不是RUN或声明变量,所有这些都没有成功. 我想要实现的是PLATFORM_HOME可以从其他Dockerfiles引用,这些Dockerfiles使用那个作为基础.怎么做 ? 解决方法
无法将变量从脚本导出到子图像.作为一般规则,环境变量向下传播,从不向父母传播.
Dockerfile FROM busybox ENV PLATFORM_HOME test RUN echo $PLATFORM_HOME Dockerfile.child FROM me/platform RUN echo $PLATFORM_HOME CMD ["sh","-c","echo $PLATFORM_HOME"] 建立父母 docker build -t me/platform . 然后建立孩子: → docker build -f Dockerfile.child -t me/platform-test . Sending build context to Docker daemon 3.072kB Step 1/3 : FROM me/platform ---> 539b52190af4 Step 2/3 : RUN echo $PLATFORM_HOME ---> Using cache ---> 40e0bfa872ed Step 3/3 : CMD sh -c echo $PLATFORM_HOME ---> Using cache ---> 0c0e842f99fd Successfully built 0c0e842f99fd Successfully tagged me/platform-test:latest 然后跑 → docker run --rm me/platform-test test (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |