Create a cloud dev env (gitpod, devcontainer, firecracker vm etc) for MageOS that allows one to get started with Magento in minutes (not days).
damienwebdev opened this issue · 1 comments
damienwebdev commented
Create a cloud dev env (gitpod, devcontainer, firecracker vm etc) for MageOS that allows one to get started with Magento in minutes (not days).
adamzero1 commented
Current thoughts
Create a repo something like "contribution-development-environment" this would allow us to specify an environment (and improvements to the environment) without forcing updates to the application repo. Which just feels wrong.
For example: if we wanted to include kibana in the environment, it wouldn't feel right putting that in the main repo. (just my opinion though)
By having a separate repo, we could also version it inline with the application. i.e contribution-development-environment:2.4.2 which would work with that specific environment.
Current Progress
- have created a fork of docker-magento here which already has a lot of what we need.
- have modified the fork in a few way to ease setup / reduce complexity / speed the process up.
Ultimatley it currently takes ~10mins for the environment to start up, but this may be reduced with pre-caching (haven't had chance to look into propperly yet)
TODO
- document the actual process in the main repo
- document the environment (how to run bin/magento etc...)
- remove scripts that aren't used
- try to use public/standard images for services where possible (instead of custom images)
- fix permission issues (this may be resolved by moving away from the custom docker images) and then remove all the permission fix commands in the gitpod.yml
- point this to official Mage OS contribution repo
- point this to a tag or branch i.e 2.4
- change php-fpm to use port and not shared socket
Future Improvements
- Use a prebuilt database with sample data already installed. There a few things that need to be decided for this though:
- by using a pre-set database it may cause really nuanced issues if the install process changes
- we would need to maintain a version of the db per magento release
- the setup scripts would need altering to update the db urls (instead of supplying them during install/setup)
- Pre-install all sample data (including images) again needs some additional thought scoping out.
- Kibana
- Redis Command
- MySQL UI
- PHP MyAdmin