使用Dockerfile
构建图像时,为了使一些env变量可用于docker构建上下文,应该明确声明表单的关联
ENV MYVAR=MYVALUE
AFAIK(纠正我,如果我在这里被误导),导出到执行docker build
命令的shell的环境变量是不传递给Docker构建上下文,即如果在我的shell中我以前是
export FOO=BAR
在Dockerfile
ENV FOO=$FOO
然后回显(仍然来自Dockerfile
)$FOO
将打印一个空字符串。
所以如果以上所有都是正确的,我的问题是docker构建上下文是否有办法继承被调用的shell的环境。
答案 0 :(得分:3)
您可以使用ARG
定义默认值:
ARG build_var=default_value
ENV ENV_VAR=$build_var
然后在构建时覆盖:
docker build --build-arg build_var=$HOST_VAR
答案 1 :(得分:0)
您可以从终端获取值并将其传递给...
$ export test="works"
$ docker run --name your_image_name -e TEST="${test}" -d -P your_image
$ docker exec -it your_image_name /bin/bash
$ env
...
TEST=works