Roda tudo dentro do ambiente docker com docker-compose, a unica coisa que normalmente eu nao corro no docker em desenvolvimento é o frontend, mas só porque nao encontrei uma forma pratica de o fazer... (sou backender(php) estou a aprender node e react neste momento)

mas no dia a dia o meu codigo php corre num container, nao muda nada na experiencia de programação comparado com usar o servidor da cli de php.

e a facilidade de acrescentar serviços no docker compose ajuda bastante.

No inicio nós tinhamos apenas o serviço php + postgres, pouco depois acrescentamos o mailhog, para fazer mail trapping. Entretanto para fazer comunicação com o front em tempo real adicionamos o mercure.rocks um servidor para processar eventos no servidor(SSE). E o ultimo serviço que acrescentamos foi o minio para termos um analogo do S3 localmente no ambiente de desenvolvimento.

Aos poucos e poucos a complexidade da aplicação foi aumentando e isso reflectiu-se no docker-compose e as alterações foram muito faceis de fazer.