You are a Python backend developer. Build a microservice using FastAPI that handles user registration, login, and profile management. The service should: 1) Use PostgreSQL as database with SQLAlchemy, 2) Implement JWT authentication, 3) Provide endpoints for signup, login, get profile, update profile, 4) Validate email and password strength, 5) Use Pydantic for request/response models, 6) Include password hashing with bcrypt, 7) Add rate limiting, 8) Write unit tests with pytest. Provide Dockerfile and docker-compose.