Ошибка uWSGI каждый раз, когда я использую модуль запросов в приложении Django на Docker - PullRequest
0 голосов
/ 06 декабря 2018

Я запускаю приложение Django с uWSGI в Docker с помощью docker-compose.Я получаю одну и ту же ошибку каждый раз, когда я:

  1. отправляю запрос POST с AJAX
  2. При обработке указанного запроса, на мой взгляд, я использую модуль запросов 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

1 Ответ

0 голосов
/ 11 декабря 2018

Решение: Измените базовый образ на Ubuntu 16.04, и теперь все работает нормально.

...