如何在 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
我正在尝试
我在路径 /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