如何在 dockerfile 中 运行 bash EXPORT 命令并保留它?

How to run bash EXPORT command in dockerfile and have it stick?

我正在尝试 ,但在 docker 文件中。

我在路径 /miniconda/bin 的 docker 中安装了 conda。在 docker 中输入 bash 并执行 conda 得到 bash: conda: command not found。在 bash 中,手动执行 export PATH="/miniconda/bin:$PATH" 使其知道 conda.

我想要在 docker 文件中。

无论我尝试什么,/miniconda/bin 都不会添加到 PATH


我尝试过的事情:

RUN export PATH="/miniconda/bin:$PATH" - 路径不受影响。

在入口点脚本中:export PATH="/miniconda/bin":$PATH - PATH 不受影响。

如何让PATH知道conda?

每个 RUN 语句都是它自己的 shell 执行,所以当 运行 命令完成时,您设置的任何环境变量都会丢失。这就是 RUN export 不起作用的原因。

你可以用ENV语句让它粘起来,像这样

ENV PATH=/miniconda/bin:$PATH

编辑:我的设置测试。 Dockerfile:

FROM debian:bullseye
ENV PATH=/my/path:$PATH

构建并运行

docker build -t test .
docker run --rm test bash -c "echo $PATH"

输出:

/my/path:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin