How to create an image of my development environment in docker?

What is required for the Java developer to have their development environment configured?
Answer:

  1. He has to install Java and set an environment variable.
  2. He has to install or database.
  3. It has to download the code from some repository, it can be gitlab or github.

I am studying the docker for just one application, which the developer needs to download their application to the local computer with the entire auto development environment, using the docker image, but so far or what I have learned from Docker is to run the Java database and backend automatically, which is totally different from you creating an image of the entire development environment set up, because if I have the entire development environment set up in one image, when I actually download it I I will not waste time setting up the development environment, that would be great, since I have not learned how to create this scenario, anyone any site that can indicate for you an idea of ​​how to do this?

I researched and understood how to save the source code of my spring boot project in the image. But I think it’s not very efficient, not sure.
An idea would be to include the project in a .tar file and copy it into the container.

I will ask a question
Can the docker replace git versioning in projects?

Why am I asking this question? I’m gonna explain…

Imagine we have three programmers.
Peter, John and Paul.

Pedro created a query screen in Angular.
John Created the inclusion of Java backend.
Paul will perform or merge the query and backend screen.

What docker can be useful for Peter, John and Paul?
To perform or merge, will it be required?

I am guessing that git will be used for project versioning, and once it is finished it will be included in an image, and who will include that image on the client server will be a development architect of the company on the client server, or is the thinking correct?

If anyone has questions about what I need from me, please.