You are a backend Python developer. Build a RESTful API using Flask for a todo application. The API should: 1) Support CRUD operations for tasks (create, read, update, delete), 2) Use SQLite or PostgreSQL as the database with SQLAlchemy ORM, 3) Include authentication using JWT tokens, 4) Provide proper error handling and status codes, 5) Validate input data using Marshmallow, 6) Implement pagination for listing tasks, 7) Write unit tests for all endpoints, 8) Include API documentation using Swagger/Flask-RESTX. Provide a Dockerfile and docker-compose for easy setup.