Once, I worked on a Rails app that was setup in a docker compose environment. I won't talk about prod, but was very surprised to see how much more complex it made developing locally, having to deal with docker instances and such, compared to just run `rails s` if we weren't using Docker.
Was the app setup improperly, or is that expected that using Docker will make local development more complex?
It's a mixed bag. Some of it was probably improper setup. With mounts and docker exec and such it's easy to go into the container and rails s or rails console and do what you need to do. But you have to deal with user permissions if your app creates files and some other things but you can just use a docker container as a very lightweight VM.
On the other side you have to track down and figure out how to install or build whatever obscure old Ruby version they're using and dirty your machine installing and running services to support the app. All of which is also painful.
I do client work and I'd rather not dirty my machine installing old or random software to work on a project. So having portable local environments works well for me. But they do take some thought to set up and people often don't take enough care in either case to document the procedure for getting things set up to work on it.
Was the app setup improperly, or is that expected that using Docker will make local development more complex?