Я запускаю приложение Django с uWSGI в Docker с помощью docker-compose.Я получаю одну и ту же ошибку каждый раз, когда я:
- отправляю запрос POST с AJAX
- При обработке указанного запроса, на мой взгляд, я использую модуль запросов python, то есть
r = requests.get(some_url)
uWSGI говорит следующее:
!!! uWSGI process 13 got Segmentation Fault !!!
DAMN ! worker 1 (pid: 13) died :( trying respawn ...
Respawned uWSGI worker 1 (new pid: 24)
spawned 4 offload threads for uWSGI worker 1
Консоль в браузере говорит: net::ERR_EMPTY_RESPONSE
Я пытался использовать модуль запросов в разных местах и вездеЯ поставил его, я получаю ту же ошибку ошибки сегментации.Я также могу запускать все нормально вне докера без ошибок, поэтому я сократил его до: docker + requests module = errror
.
Есть ли что-то, что может блокировать запросы, отправленные с модулем запросов отвнутри докера?Заранее благодарим за помощь.
Вот мой файл uwsgi.ini :
[uwsgi]
chdir = %d
module = my_project.wsgi:application
master = true
processes = 2
http = 0.0.0.0:8000
vacuum = true
pidfile = /tmp/my_project.pid
daemonize = %d/my_project.log
check-static = %d
static-expires = /* 7776000
offload-threads = %k
uid = 1000
gid = 1000
# there is no /etc/mime.types on the docker Arch Linux image
mime-file = %d/mime.types
Dockerfile :
FROM alpine:3.8
ENV PYTHONUNBUFFERED 1
RUN mkdir /my_project
WORKDIR /my_project
RUN apk add build-base python3-dev py3-pip python3
# deps for python cryptography
RUN apk add libffi-dev musl-dev openssl-dev
# dep for uwsgi
RUN apk add linux-headers
ADD requirements.txt /my_project/
RUN pip3 install -r requirements.txt
ADD . /my_project/
ENTRYPOINT ./start.sh
docker-compose.yml :
version: '3'
services:
web:
build: .
entrypoint: ./start.sh
volumes:
- .:/my_project
ports:
- "8000:8000"
environment:
- DEBUG_LEVEL=INFO
network_mode: "host"
start.sh :
#!/bin/sh
echo '' > logfile.log
uwsgi --ini uwsgi.ini
tail -f logfile.log