Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of Docker for seamless and smooth experience #54

Open
RandomSummer opened this issue Oct 14, 2024 · 8 comments
Open

Implementation of Docker for seamless and smooth experience #54

RandomSummer opened this issue Oct 14, 2024 · 8 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request gssoc-ext help wanted Extra attention is needed level3

Comments

@RandomSummer
Copy link
Contributor

Hey! @Devanik21

I noticed that the repository does not contain a docker and docker-compose.yml file, which is essential for streamlining the setup of the backend services, particularly for the Streamlit projects.

I have extensive experience in setting up Docker environments for local development. I've worked on several projects where docker played a crucial role in streamlining the development process, and I am confident that I can deliver a high-quality solution for this repository.

The addition of a docker-compose.yml file would greatly improve the development and deployment process by enabling easier orchestration of the backend services using Docker.

Proposed Solution
I would like to contribute by adding a Dockerfile and docker-compose.yml file that:

Defines services for the backend.
Configures networking to allow smooth communication.
No one ever needs to worry about the setup it will be done using only one code.
This will allow contributors and developers to quickly spin up the backend environment using Docker, enhancing productivity and minimizing setup errors.

Please let me know if this sounds like a good enhancement, and I'd be happy to get started! 😊

For reference my previous PR : yashasvini121/predictive-calc#45

Thank you for your consideration!

Copy link

👋 Thank you for raising an issue! We appreciate your effort in helping us improve. Our team will review it shortly. Stay tuned!

@Devanik21 Devanik21 added documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed level3 and removed level1 labels Oct 15, 2024
@Devanik21
Copy link
Owner

Hey! @Devanik21

I noticed that the repository does not contain a docker and docker-compose.yml file, which is essential for streamlining the setup of the backend services, particularly for the Streamlit projects.

I have extensive experience in setting up Docker environments for local development. I've worked on several projects where docker played a crucial role in streamlining the development process, and I am confident that I can deliver a high-quality solution for this repository.

The addition of a docker-compose.yml file would greatly improve the development and deployment process by enabling easier orchestration of the backend services using Docker.

Proposed Solution I would like to contribute by adding a Dockerfile and docker-compose.yml file that:

Defines services for the backend. Configures networking to allow smooth communication. No one ever needs to worry about the setup it will be done using only one code. This will allow contributors and developers to quickly spin up the backend environment using Docker, enhancing productivity and minimizing setup errors.

Please let me know if this sounds like a good enhancement, and I'd be happy to get started! 😊

For reference my previous PR : yashasvini121/predictive-calc#45

Thank you for your consideration!

Thanks, sure.But I need to know more about it as I'm newbie to docker.

@Devanik21
Copy link
Owner

Hey! @Devanik21

I noticed that the repository does not contain a docker and docker-compose.yml file, which is essential for streamlining the setup of the backend services, particularly for the Streamlit projects.

I have extensive experience in setting up Docker environments for local development. I've worked on several projects where docker played a crucial role in streamlining the development process, and I am confident that I can deliver a high-quality solution for this repository.

The addition of a docker-compose.yml file would greatly improve the development and deployment process by enabling easier orchestration of the backend services using Docker.

Proposed Solution I would like to contribute by adding a Dockerfile and docker-compose.yml file that:

Defines services for the backend. Configures networking to allow smooth communication. No one ever needs to worry about the setup it will be done using only one code. This will allow contributors and developers to quickly spin up the backend environment using Docker, enhancing productivity and minimizing setup errors.

Please let me know if this sounds like a good enhancement, and I'd be happy to get started! 😊

For reference my previous PR : yashasvini121/predictive-calc#45

Thank you for your consideration!

If you have time, make me clear about docker, it will be extremely helpful.

@RandomSummer
Copy link
Contributor Author

Sure thing, I will provide you with some insights.

Problems:

  1. Most of the time is spent by developers setting up the app environment.
  2. They have to simultaneously update their environment. (System update, Software update)
  3. Things get pretty messy for different OS kernels. (Linux, Windows, Mac)
  4. If you run this app locally there might be a problem between your system software requirement and app requirement, so what we do is we use a virtual environment. Sometimes developers face difficulties.

Solution:

  1. Docker can solve these things, I will help you set up an environment where such hassle won't bother you.
  2. There is no need for an environment set up, use a single code it will work like butter.
  3. I can provide you not only a virtual environment, but I can provide you virtual container with its own OS kernel, with no cross-platform OS problem.
  4. I can guide you to create a Docker Image of your project which can be accessed by anyone.

Both Development and Operation will be done simultaneously.

I have helped you even many more things such as PORT, network enhancement, data storage, etc.

Thanks for your consideration 😎

@Devanik21
Copy link
Owner

@RandomSummer
hmm i understand, but the app I have created is just a link that needs internet to open in any browser (win / mac/ linux.....any).
Why I'll need docker?
please explain me , I'm just curious😫

@RandomSummer
Copy link
Contributor Author

RandomSummer commented Oct 15, 2024

@Devanik21
I know what you are but everything is for developer POV, developers with (win/Mac/Linux.... any).
If someone wants to use your project, later on, to create something innovative.... then he has to go through all the hassle to set up the process, but with docker, we can save that time and hassle...... we save time and mental stress for setting up the environment, connection, networking, PORT management much more...

Things that I would bring using Docker are:

  1. Environment Consistency:- Docker ensures that the project runs the same way on all machines by encapsulating the environment.

  2. Simplified Setup:- With Docker, new developers or collaborators can quickly set up the Streamlit project by just running the Docker container. They don’t need to manually install dependencies or configure their systems.

  3. Version Control for Environments:- The Dockerfile serves as version control for the environment, making it easy to track changes in the system configurations alongside code changes in GitHub.

  4. Isolation:- Docker containers provide complete isolation, so different versions of libraries, Streamlit, or other dependencies can coexist without conflicts, which is especially useful if multiple projects are being worked on.

  5. Ease of Deployment:- Docker makes deployment smoother by bundling the application and environment into a single image. Streamlit apps can be deployed to any server or cloud platform that supports Docker without worrying about environment compatibility.

  6. CI/CD Integration:- Docker can be easily integrated into CI/CD pipelines. You can automate the testing and deployment of your Streamlit app with GitHub Actions or any other CI/CD tool by leveraging Docker containers.

  7. Scalability:- Docker works well with container orchestration tools like Kubernetes, enabling your Streamlit app to be scaled efficiently in a production environment if needed.

All these are for the ease of the workflow for developers and collaborators.

@Devanik21
Copy link
Owner

@RandomSummer ,looks advanced

@RandomSummer
Copy link
Contributor Author

It won't be a problem it will make it simple for you. If you want to implement Docker assign the task to me and let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request gssoc-ext help wanted Extra attention is needed level3
Projects
None yet
Development

No branches or pull requests

2 participants