我正在像这样运行Docker容器:
nvidia-docker run --publish 0.0.0.0:8080:8888 -e LD_LIBRARY_PATH=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tensorrt/lib -it container:latest bash
在我的主机LD_LIBRARY_PATH
中:
/usr/local/cuda/lib64:/usr/local/nccl2/lib:/usr/local/cuda/extras/CUPTI/lib64
我需要使用ENV迁移到Dockerfile,如何将LD_LIBRARY_PATH
更改为ENV
,而无需对值进行硬编码?
这将使用主机值吗?
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/tensorrt/lib
答案 0 :(得分:1)
使用docker build
命令的--build-arg选项。
将您的dockerfile更改为此
FROM same-base-image
ARG LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/tensorrt/lib
使用--build-arg
选项构建docker映像
docker build --build-arg LD_LIBRARY_PATH=$LD_LIBRARY_PATH -t myimage:v1 .
注意::这里$LD_LIBRARY_PATH
指向主机上的环境变量。
现在运行docker容器并确认正确设置了变量。
$ docker run -itd myimage:v1 sh
$ docker exec -it mycontainer env
希望这会有所帮助。