Docker环境变量定义

时间:2019-08-13 17:07:36

标签: docker dockerfile

我正在像这样运行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

1 个答案:

答案 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

希望这会有所帮助。