擅长:python、mysql、java
<p>任何对我有用的东西感兴趣的人。在</p>
<p>我的问题有很多方面——一个是我在docker和Ubuntu方面做得不好。在</p>
<p>但这里有一些见解:安装枕头需要几个依赖项。据我所知,你需要:<code>gcc python3-dev jpeg-dev zlib-dev</code></p>
<p>为了防止这些依赖项最终出现在最终映像中(保持图像大小较小),您可以安装一些(不是全部!)它们在虚拟包中,并在安装Pillow后删除它们(这些依赖项称为构建依赖项-仅在构建期间需要)。在</p>
<p>所以这是对我有用的代码:</p>
<pre><code>RUN apk update \
&& apk add virtual build-deps gcc python3-dev musl-dev \
&& apk add postgresql \
&& apk add postgresql-dev \
&& pip install psycopg2 \
&& apk add jpeg-dev zlib-dev libjpeg \
&& pip install Pillow \
&& apk del build-deps
</code></pre>
<p>(Pillow不需要一些东西,例如postgresql,postgresql dev)——正如您所见,我将构建依赖项安装在一个名为<code>build-deps</code>的虚拟包中。之后,我安装了枕头,最后我删除了构建依赖。在</p>
<p>我想,这也是@LinPy提出的解决方案,我只是想解释这个非常冗长的问题,最终帮助其他人。在</p>
<p>{a1}</p>