Отладчик PyCharm не может подключиться к приложению Django внутри docker

Я пытаюсь отладить приложение Django внутри контейнера Docker, приложение запущено под uWSGI. К сожалению, отладчик PyCharm не может подключиться к контейнеру и останавливается по таймауту.

Моя конфигурация запуска:

Screenshot

Я добавил up --build для запуска всех контейнеров в режиме отладки.

docker-compose.yml:

version: "2.4"
services:
  rabbitmq:
    image: rabbitmq:3.10.7-management-alpine
    container_name: bo-rabbitmq

  rsyslog:
    build:
      context: .
      dockerfile: docker/rsyslog/Dockerfile
    image: bo/rsyslog:latest
    container_name: bo-rsyslog
    platform: linux/amd64
    env_file:
      - .env
    volumes:
      - shared:/app/mnt

  api:
    build:
      context: .
      dockerfile: docker/api/Dockerfile
    image: bo/api:latest
    container_name: bo-api
    platform: linux/amd64
    ports:
      - "8081:8081"
      - "8082:8082"
    env_file:
      - .env
    volumes:
      - shared:/app/mnt

  apigw:
    build:
      context: .
      dockerfile: docker/apigw/Dockerfile
    image: bo/apigw:latest
    container_name: bo-apigw
    platform: linux/amd64
    ports:
      - "8080:8080"
    env_file:
      - .env
    volumes:
      - shared:/app/mnt
    depends_on:
      - api

volumes:
  shared:

Dockerfile (для api):

FROM nexus.custom.ru/base/python27:2.7.17 # CentOS 7 with Python 2.7
# Environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PYTHONPATH /app/
ENV PATH /app/:$PATH
ENV PIP_DEFAULT_TIMEOUT=100 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    PIP_NO_CACHE_DIR=1
# Install required software
RUN yum -y install enchant
# Working directory
WORKDIR /app
# Install and configure Poetry
RUN pip install --no-cache-dir poetry \
    && poetry config virtualenvs.create false
# Install project dependencies
COPY pyproject.toml .
COPY poetry.lock .
RUN poetry install --no-root --no-interaction
# Copy project files
COPY . .
COPY docker/api/manage.py ./
COPY docker/api/settings.py ./apps/adm/
COPY docker/api/config.py ./apps/adm/
COPY docker/api/config/development.yml ./config/
COPY docker/api/config/uwsgi/uwsgi.yml ./config/uwsgi/
COPY docker/api/entrypoint.sh ./
# Allow execution
RUN chmod +x /app/entrypoint.sh
# Entrypoint
ENTRYPOINT /app/entrypoint.sh

entrypoint.sh:

#!/bin/sh
# Create required directories
mkdir -p /app/mnt/spooler
mkdir -p /app/mnt/logs
mkdir -p /app/mnt/run
mkdir -p /app/mnt/shared/static
mkdir -p /app/mnt/protected_media
mkdir -p /app/mnt/htdocs
# Copy static
cp -r -n /app/static /app/mnt/shared/static
# Run uWSGI
uwsgi --yml=/app/config/uwsgi/uwsgi.yml

uwsgi.yml:

uwsgi:
  chdir: /app
  master: true
  procname-master: b::master
  procname: b::worker
  processes: 2
  threads: 4
  listen: 128
  max-requests: 1024
  buffer-size: 16384
  reload-on-exception: false
  master-fifo: /app/mnt/run/running.fifo
  vacuum: false
  lazy-apps: true
  enable-threads: true
  pythonpath: /app

  http: :8081
  env: DJANGO_SETTINGS_MODULE=apps.adm.settings
  module: apps.adm.wsgi

  stats: :8082
  stats-http: true
  memory-report: 1

  disable-logging: 0
  log-5xx: true
  log-4xx: true
  log-slow: 500

Что я делаю неправильно? Можно ли подключить PyCharm к приложению Django с помощью uWSGI внутри docker?

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