在 Dockerfile ENV 指令中访问 $HOME

Access $HOME in Dockerfile ENV instruction

我正在尝试使用 $HOME 变量(我认为它是一个系统环境变量)通过 ENV 指令动态设置环境变量。

但是 ENV 无法访问 $HOME。它的空白。虽然我能够回应 $HOME.

FROM somebaseimage

....
....

USER 5051

RUN echo $HOME
# prints /home/myuser

ENV MY_JSON_FILEPATH="${HOME}/my_file.json"

RUN echo $MY_JSON_FILEPATH
# prints /my_file.json

我试过了 "${HOME}/my_file.json", "$HOME/my_file.json";两个都不行。

设置此类环境变量的最佳方法是什么?

您应该在 FROM ... 行之后添加行 ARG HOME 并在 docker-compose 文件中传递构建选项 --build-arg or add build:args 参数。