【发布时间】:2022-01-19 23:35:18
【问题描述】:
我有一个 Dockerfile:
### everything, that was commented out with '#' was tried to no avail
FROM ubuntu
#RUN echo "!#/bin/sh" > do.sh
RUN echo "export A=A" >> do.sh
### please run script do.sh
#SHELL ["/bin/bash" ,"-c", "source /do.sh"]
#RUN source /do.sh
#ENTRYPOINT /do.sh
我使用 Makefile 构建它:
all: build run
build:
echo build|figlet
docker build -t test .
run:
echo run|figlet
docker run -it test
当我进入交互式终端时,我只想从脚本do.sh中获得环境变量。
这是从另一个上下文重现问题。这就是我不想使脚本可执行的原因。
我原来的上下文是:我想从本教程http://wiki.ros.org/ROS/Tutorials/CreatingPackage 调用catkin_ws/devel . ~/catkin_ws/devel/setup.bash 中的一个脚本。
【问题讨论】:
-
脚本没有环境。一个进程有一个环境。当然,询问运行某个脚本的进程在其执行的特定点所具有的环境是有意义的。为此,您可以在脚本中添加
printenv >env.txt。 env.txt 将包含在执行 printenv 命令时生效的环境定义。