Package: denv-creator
Docker Environment Creator (denv-creator)This project is under construction and does not currently function properly. Feel free to use it and test it.Automates the process of creating a docker environment (usingdocker-compose) with all the containers you want, also with all of their respective configuration files. This can be done by answering a few questions on the command line.Supported ContainersNginxNo services/containers are defined in the config file, you have to define this yourselfProxy passing to PHP-FPM is present in the config file but is commented out. If you are using PHP-FPM, make sure to uncomment itDepends on any other services definedPHP-FPMPre installed with Xdebug and ComposerNodePre installed with PM2PythonPre installed with Flask (and FlaskSocketIO) and PM2 (and it's own ecosystem file)SQLUtilises anenvfile inside.docker/env/. Remember to change this if requiredCreates an empty dump fileMongoDBComes with it's own environmental fileMongo SeederAlready seeds the database, using database name inside the dockerfile.Creates an empty.docker/data/mongo-data-dumpdirectory where the dumps are placedApacheIf using PHP, comment out the comment inside of the config fileDepends on any other services definedDenoRuns on port 1447RedisRequirementsPython 3.7 or higherInstall and RunClone the repocd /path/to/my/development/environmentsgit clone https://github.com/ebebbington/denv-creator.gitCreate your project!python denv-creator/index.pyNotesRemember to adjust certain files, such as thedocker-compose.ymlfile to specify what services depend on whatAlso, if you are separating source code for each container, remember to modif the related values inside thedocker-compose.ymlfileFile Structure__pycache__/Cached files of our python scripts. This gets generated automatically and they are being ignored.github/Holds github related configurations. Nothing to worry aboutcontainers/The list of container classes. This holds a class for each container - which encapsulates the logic for each onedata/General files to aid in the container configuration such as the defaultphp.inifile.gitignoreContains a list of files or directories for Git to ignore as we don't want those files committedCONTRIBUTING.mdContribution guideindex.pyOur main entrypoint script, makes the basic calls to theProjectclass to setup the environmentLICENSE.txtLicense fileproject.pyOur project class. This is where the magic happens. It holds 90% of the logic for the project (represents the project)README.mdselfresponse.mdA class to handle speaking to the user. This abstracts the logic to log out data, ask for input or show errorstest.pyTesting file to act as a playgroundvalidate.pyValidation file to handle all things validat-eyFlow of ExecutionUse calls the main scriptThe main scripts makes all the calls to theProjectmethodsThe project class is what does the magic. It collects data from the userEventually when all data is collected, the project class uses the container classes to aid in creating/writing files and directoriesTestsUnit testing has been setup and tries to cover 100% of the code.Testing was also achieved by installingpytestandcoverage:pipinstallpytestcoverageWriting the TestsThere is a test file for each other file, that mimics the file and tests each method.Running the testspytestWith code coverage:coverage run --source . -m pytest && coverage html --omit="*_test.py"Built WithPython- Language usedAuthorsEdward Bebbinton -Owner/Developer-ebebbingtonWill Bebbington -Developer-willjb95ContributingSeehereLicenseThis project is licensed under the MIT License - see theLICENSE.txtfile for details