gunicorn/tests/docker/uwsgi/docker-compose.yml
Benoit Chesneau ecc471f3b4 tests: Add Docker integration tests for uWSGI protocol with nginx
Add comprehensive integration tests verifying gunicorn's uWSGI binary
protocol works correctly with nginx's uwsgi_pass directive.

Test categories:
- Basic GET/POST requests with query strings and large bodies
- Header preservation (custom headers, Host, Content-Type)
- HTTP keep-alive connections
- Error responses (400-503 status codes)
- WSGI environ variables
- Large response streaming (1MB)
- Concurrent request handling
- Edge cases (binary data, unicode, long headers)

Architecture: pytest -> nginx:8080 -> uwsgi_pass -> gunicorn:8000

Also adds GitHub Actions workflow that runs on changes to uwsgi module
or docker test files.
2026-01-22 19:06:30 +01:00

30 lines
677 B
YAML

services:
gunicorn:
build:
context: ../../..
dockerfile: tests/docker/uwsgi/Dockerfile.gunicorn
expose:
- "8000"
healthcheck:
test: ["CMD", "python", "-c", "import socket; s=socket.socket(); s.connect(('localhost', 8000)); s.close()"]
interval: 2s
timeout: 5s
retries: 10
start_period: 5s
nginx:
build:
context: .
dockerfile: Dockerfile.nginx
ports:
- "8080:8080"
depends_on:
gunicorn:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/"]
interval: 2s
timeout: 5s
retries: 10
start_period: 5s