Сбой установки uWSGI в сборке docker

Когда я добавляю uWSGI==2.0.19.1 в requirements.txt, а затем запускаю docker-compose build, то ничего не получается. Уже искал некоторое время, вроде бы нет таких знакомых случаев, как этот. Вот мои файлы. Не стесняйтесь делиться своими идеями, tks.


requirements.txt

...

uWSGI==2.0.19.1

...

logs

Dockerfile

FROM python:3

ENV PYTHONDONTWRITEBYTECODE=1

ENV PYTHONUNBUFFERED=1

WORKDIR /code

COPY requirements.txt /code/

RUN pip install -r requirements.txt

COPY . /code/

docker-compose.yml

version: "3.9"

services:

  db:
    image: postgres
    volumes:
      - postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_NAME=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

  web:
    build: ./web
    restart: always
    volumes:
      - ./web:/code
    ports:
      - "8000:8000"
    environment:
      - DEBUG=True
      - CELERY_BROKER_URL=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - POSTGRES_NAME=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

    depends_on:
      - db
    entrypoint: /code/entrypoint.sh


  celery:
    build: ./web
    restart: always
    volumes:
      - ./web:/code
    depends_on:
      - web
      - redis
      - db
    links:
      - redis:redis
    command: celery -A demo worker -l info
    environment:
      - DEBUG=True
      - CELERY_BROKER_URL=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      - POSTGRES_NAME=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres


  redis:
    image: redis:alpine


  nginx:
    image: nginx
    build: ./nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./web:/code
      - ./nginx/log:/var/log/nginx
    depends_on:
      - web


volumes:
  postgres:

uWSGI имеет множество зависимостей, которые должны быть доступны перед установкой. Я предпочитаю использовать легкодоступный ubuntu базовый образ с минимально возможной модификацией.

FROM ubuntu:18.04
RUN apt update && \
 apt install -y vim && \
 apt-get install -y python3-pip && \
 apt install gcc && \
 pip3 install uwsgi 

У меня в Dockerfile было FROM python:3.11-alpine, который не включал все необходимые зависимости для сборки uwsgi. При переключении на FROM python:3.11 он собрался нормально.

Вернуться на верх