Hey There, Dev!
What's the current state-of-the-art for LAMP workflows? My client has a small team, and they're currently just uploading files via FTP to a GoDaddy shared server - No source control, no tests, no deployment, just FTP 🤷♂️. They also don't have any sort of local development workflow, so no XAMPP/MAMP, vagrant, docker, etc.
In order to open the door to more modern workflows, I want to get them pushing feature branches and opening merge requests on GitLab and have some CI/CD running. I also want to set up some local-development facility so that we don't have to wait for FTP to sync, then fetch static resources from GoDaddy's ahem somewhat under-performing servers on each load.
My present thinking is something along the lines of:
- Apache or NGINX in docker serving static files and running PHP
- A separate MySQL container running the database.
- We'll either instantiate a new DB for each user's local dev box or point the development containers to a development DB server.
- Docker for Mac / Docker for Windows for local dev
- Or is there some GUI wrapper around docker that would make this a less painful process? I tried Local by Flywheel once and it wasn't half bad.
- GitLab CI to run deployments either to GoDaddy (docker on GoDaddy?) or to one of the cloud providers.
Orchestrating the DB across multiple instances is not a priority at the moment, but if we're going to invest in a more sophisticated workflow than uploading over FTP, we ought to have future orchestration in mind, so what are some common gotchas?
If you were doing this, would you take this approach or another?