<p>编辑:这个答案只是告诉你如何验证docker图像中发生了什么。不幸的是,我无法理解为什么会发生这种情况</p>
<p>如何检查</p>
<p>在docker构建的每个步骤中,您都可以看到生成的各个层。您可以使用该ID创建一个临时映像来检查正在发生的事情。e、 g</p>
<pre class="lang-sh prettyprint-override"><code>docker build -t my_bonk_example .
[...]
Removing intermediate container xxxxxxxxxxxxx
-> 57778e7c9788
Step 19/31 : RUN mkdir -p /tmp/spark-events
-> Running in afd21d853bcb
Removing intermediate container xxxxxxxxxxxxx
-> 33b26e1a2286 < let's use this ID
[ failure happens ]
docker run -it rm name bonk_container_before_failure 33b26e1a2286 bash
# now you're in the container
echo $LD_LIBRARY_PATH
ls /usr/local/cuda
</code></pre>
<hr/>
<p>关于Dockerfile的旁注:</p>
<p>如果更改Dockerfile中的指令顺序,可以缩短将来生成的生成时间。Docker使用一个缓存,当它发现与前一个构建不同的内容时,该缓存就会失效。我希望您更改代码的频率高于docker映像的要求,因此在apt指令之后移动副本是有意义的。e、 g</p>
<pre><code># Dockerfile
FROM nvidia/cuda:10.2-base
RUN set -xe \
&& apt-get update \
&& apt-get install python3-pip -y \
&& apt-get install git -y
RUN pip3 install upgrade pip
WORKDIR /SingleModelTest
COPY requirements /SingleModelTest/requirements
RUN pip3 install -r requirements/requirements1.txt
RUN pip3 install -r requirements/requirements2.txt
COPY . /SingleModelTest
RUN nvidia-smi
ENTRYPOINT ["python"]
CMD ["TabNetAPI.py"]
</code></pre>
<p>注意:这只是一个例子</p>
<hr/>
<p>关于为什么不构建映像,我发现PyTorch 1.4不支持CUDE 11.0(<a href="https://discuss.pytorch.org/t/pytorch-with-cuda-11-compatibility/89254" rel="nofollow noreferrer">https://discuss.pytorch.org/t/pytorch-with-cuda-11-compatibility/89254</a>),但是使用以前版本的CUDA也不能解决这个问题</p>