我正在尝试在Docker-compose中运行一个Django rest api,在一个有1 1gb内存的覆盆子pi 3B上。postgresql数据库和nodejs前端运行没有任何问题。但是对于django后端,docker-compose up的输出是一个分段错误:
backend | + python3 manage.py makemigrations restapi
backend | No changes detected in app 'restapi'
backend | scripts/start_server.sh: line 29: 13 Segmentation fault (core dumped) python3 manage.py makemigrations restapistart_server.sh中的第29行是指:
python3 manage.py makemigrations restapi你知道segfault是从哪里来的吗?或者我怎样才能找到问题所在?这可能是内存问题吗?我在1 1GB的RAM旁边配置了8 1GB的交换空间。这会阻止python耗尽内存吗?完全相同的配置在我的8 8GB内存的PC上运行得很好,所以我想我的django型号应该不会有问题。
编辑:如果我跳过makemigrations并跳到迁移,我也会得到一个Segfault值:
backend | Applying restapi.0001_initial... OK
backend | Applying sessions.0001_initial... OK
backend | scripts/start_server.sh: line 31: 13 Segmentation fault (core dumped) python3 manage.py migrate Edit2:
我尝试在具有8 8GB的Pi 4b上运行它,但仍然得到相同的错误。我成功地在另外两台也有8 8GB内存的机器(PC和笔记本电脑)上运行了它。因此,我认为RAM不是问题所在。这两个pis唯一的共同点是60 sd的sd卡和ubuntu20.4服务器。我为他们每个人都做了一个全新的设置。
Edit3:不是一个解决方案,而是一种临时的解决办法:命令"python3 manage.py makemigration“、"python3 manage.py migrate”等每个命令都会导致段错误,但看起来它们在崩溃之前仍然在执行。因此,我可以重新运行docker,每次注释掉最后一个命令,直到所有命令都被应用。然后django运行,没有任何错误,数据库就完成了。然而,这让我感到困惑,因为我不明白segfault的可能原因。
发布于 2020-09-26 22:03:42
我的第一个猜测是你没有足够的内存,试试内存超过1 1GB的机器
https://stackoverflow.com/questions/64078525
复制相似问题