As we continue development for grantmetrics/Event tool, our stack becomes more robust. It would be very beneficial to both the maintainers and any further volunteers to have a standard development environment that they can instantly load and, with an accompanying tunnel to the replicas, run the system locally.
This investigation should look into:
- The option of creating docker containers that include grantmetrics' stack (symfony4 web, mysql, redis, etc)
- Docker seems to be the most straight forward approach, but are there any other options that are better
- Can we create an instance that takes Docker environment variables (.env) into app/config/parameters.yml, so that when the docker runs "composer install" we don't get the step-by-step first-install ...?
- Can the docker build work with the tunnel consistently
We can take a look at what was done for InteractionTimeline, which also uses a tunnel to the replicas. Their docker setup is available in their repo:
- https://github.com/wikimedia/InteractionTimeline/blob/master/Dockerfile
- https://github.com/wikimedia/InteractionTimeline/blob/master/docker-compose.yml
And there are docker containers for symfony4 that can help:
- Example step-by-step for docker container(s) for symfony4 https://blog.joeymasip.com/docker-for-symfony-4/
- This one has instructions for debugging through xcode https://github.com/eko/docker-symfony
The ideal would be to create a container we can then reuse for future projects that handle similar instances (symfony, a database, with or without a tunnel etc)