我有一个Dockerizedjango应用程序,我想投入生产。但是自从我添加了一个Imagefield枕头之后,我就很难在Docker容器中安装枕头了。在
据我所知,添加依赖关系jpeg dev ibjpeg&zlib dev对于django(?)应该足够了。对于以下配置,我收到错误:
在runserver
上出错:
product.Product.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
product.Product.thumbnail: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
如果我加枕头要求.txt(或将pip install Pillow
放入Dockerfile)我在尝试构建容器时收到一条更长的错误消息。
不将pip install Pillow
放入Dockerfile或要求.txt-这是我的配置。在
Dockerfile:
^{pr2}$要求.txt
astroid==2.1.0
certifi==2018.11.29
chardet==3.0.4
Django==2.1.7
django-cors-headers==2.4.0
django-filter==2.1.0
djangorestframework==3.9.1
djangorestframework-simplejwt==3.3
gunicorn==19.9.0
httpie==1.0.2
httpie-jwt-auth==0.3.0
idna==2.8
isort==4.3.4
lazy-object-proxy==1.3.1
Markdown==3.0.1
mccabe==0.6.1
PyJWT==1.7.1
requests==2.21.0
six==1.12.0
urllib3==1.24.1
wrapt==1.11.1
我已经有一段时间了。有人能帮忙吗?在
任何对我有用的东西感兴趣的人。在
我的问题有很多方面——一个是我在docker和Ubuntu方面做得不好。在
但这里有一些见解:安装枕头需要几个依赖项。据我所知,你需要:
gcc python3-dev jpeg-dev zlib-dev
为了防止这些依赖项最终出现在最终映像中(保持图像大小较小),您可以安装一些(不是全部!)它们在虚拟包中,并在安装Pillow后删除它们(这些依赖项称为构建依赖项-仅在构建期间需要)。在
所以这是对我有用的代码:
(Pillow不需要一些东西,例如postgresql,postgresql dev)——正如您所见,我将构建依赖项安装在一个名为
build-deps
的虚拟包中。之后,我安装了枕头,最后我删除了构建依赖。在我想,这也是@LinPy提出的解决方案,我只是想解释这个非常冗长的问题,最终帮助其他人。在
{a1}
将此添加到您的
Dockerfile
:来源:Github
相关问题 更多 >
编程相关推荐