mage-os/mageos-magento2

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

Create a cloud dev env (gitpod, devcontainer, firecracker vm etc) for MageOS that allows one to get started with Magento in minutes (not days).

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)

Demo Video

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