【发布时间】:2020-06-24 16:27:37
【问题描述】:
我有一个 Dockerfile,我在其中设置了一些环境变量(在我运行容器时使用)。一些环境变量依赖于以前的环境变量。当我可以替换为变量时,我想保持 DRY 并避免多次硬编码环境变量的值。
在这个简单的示例中,PYTHONPATH 环境变量使用来自 PROJ_DIR 环境变量的值。
FROM python:3.8.4
ENV PROJ_DIR=/myproj/ \
PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}
但是,当我实际运行容器时,PROJ_DIR 正确设置,但因变量 PYTHONPATH 没有设置。
docker build -f Dockerfile . -t test-docker
docker run --rm -it test-docker:latest bash
root@60fc899899a1:/# export | grep -i proj
declare -x PROJ_DIR="/myproj/"
root@60fc899899a1:/# export | grep -i pythonpath
declare -x PYTHONPATH=":"
如何在 Dockerfile 中使用之前设置的环境变量?
【问题讨论】:
标签: docker environment-variables dockerfile