I am looking for an expert in docker and architecture to create an open source application related to Stack LAMPS via Docker, docker compose.
I have an application (the project) created in C# .net8.0/winform for win-11, which does the following:
-
This does an initial assessment looking for docker, the docker component and services are running, to ensure the main requirement is working.
-
Makes an evaluation of the docker settings, since for this application to work correctly, we need certain parameters enabled by default; If it does not find those settings set with the necessary values, it will make the pertinent modifications and restart the services and the docker engine, as well as wsl.
-
If the system determines that everything is correct, it will evaluate or install the following prerequisites: The need for the chocolatey package, to then be able to install mkcer and finally be able to add the ability to generate SSL certificates for custom URLs accessible internally.
-
If everything above works correctly, the system will create 3 base containers:
a. WSDD-Proxy-Server: this container will be responsible for receiving requests and will function as a reverse proxy for the internal Docker network, providing access via custom url to the projects defined by the developer/administrator.
b. WSDD-Mysql-Server and WSDD-PhpMyAdmin-Server: These are two containers, one for the databases and the other for the database administrator.
- The system currently has the facility to alter the Windows hosts file automatically when new projects are added by adding lines such as:
127.0.0.1 project1.dock
127.0.0.1 project2.dock
This is done to redirect the requests to the proxy server so that it finds the corresponding container.
What is lacking:
Currently I need to be able to programmatically add the following structures using commands, because these will be used as command templates for the execution and construction of the projects.
I must provide developers/administrators from a graphical interface to choose the PHP/apache server version they want to install, with the idea of initially creating a project:
Example:
- Apache+php7.4 Container (LAP Service Container = Linux, apache, php)
- Project Directory #1 (Shared directory on the network)
Note: it is important that the Apache+php Container setup using the vhost can see and point to the Project #1 Directory that is located in the docker network.
Then if the user wants to add a project #2 and implement php 7.4, they would NO longer need to create the entire container, but rather the vhost would be updated by adding the custom path/url to the new directory. It is important that the container can support multiple urls. Something like:
environment:
VIRTUAL_HOST: project1.dock
And this can be updated when new projects are added.
In the end the environment should have this scheme:
Some screenshots of the progress: