Como criar uma imagem do meu ambiente de desenvolvimento no docker?

O que é necessário para o desenvolvedor Java tinha seu ambiente de desenvolvimento configurado?
Resposta:

  1. Ele tem que instalar Java e configurar a variável de ambiente.
  2. Ele tem que instalar o banco de dados.
  3. Ele tem que baixar o código de algum repositório, pode ser gitlab ou github.

Estou estudando docker justamente por uma finalidade, que o desenvolvedor tenha condições de baixar sua aplicação para o seu computador local com todo ambiente de desenvolvimento automaticamente configurado através de uma imagem de docker, mas até agora o que eu aprendi com Docker é executar o banco de dados e o back-end Java de forma automática, que é totalmente diferente de você criar uma imagem de todo o ambiente de desenvolvimento configurado, porque se eu tenho todo meio ambiente desenvolvimento configurado em uma imagem, quando eu baixar ela realmente eu não vou ter perda de tempo de configurar o meio ambiente de desenvolvimento, isso seria sensacional, sendo que eu ainda não aprendi a como criar esse cenário, alguém teria algum site que pudesse indicar para eu ter uma ideia de como fazer isso?

Se alguém tiver dúvidas do que estou precisando me perguntei, por favor.

https://linuxconfig.org/docker-container-backup-and-recovery

https://www.thegeekdiary.com/how-to-update-add-a-file-in-the-docker-image/

Desculpe, é porque não ficou claro! realizar backup e recovery conseguirei ter acesso ao código fonte de uma aplicação java ?

Nesse caso aí em cima, vc só vai fazer o backup e jogar no .tar, se quiser incluir o seu projeto, é só zipar junto

ai o docker compactar em extensão .tar e transforma em uma imagem ou é a gente que tem que compactar em .tar e incluir esse arquivo na imagem?

Eu pesquisei e entendi o funcionamento de como salvar o código fonte do meu projeto spring boot na imagem. Mas eu acho que não é muito eficiente, não tenho certeza.
A ideia seria incluir o projeto em um arquivo .tar e copiar ele para dentro do container.

Vou fazer uma pergunta
O docker tem como substituir o versionamento que git faz nos projetos?

Porque estou fazendo Essa pergunta? Vou explicar…

Imagine que temos três programadores.
Pedro, João e Paulo.

Pedro criou a tela de consulta no Angular.
João Criou a inclusão através do back-end Java.
Paulo irá realizar o merge da tela de consulta e back-end.

O que o docker poderá ser útil para Pedro, João e Paulo?
Para realizar o merge vai precisar do git obrigatoriamente ?

Eu estou imaginando que será usando o git para versionar o projeto, e depois que tiver concluído será incluído em uma imagem, e quem incluirá essa imagem no servidor do cliente será um arquiteto de desenvolvimento da empresa no servidor do cliente, o raciocinio está correto?

Você só quer zipar seu arquivo pra pegar o backup do docker?

acho que isso aqui vai ser util pra vc:

Bom, se eu entendi corretamente você quer automatizar o processo de setup do ambiente dos desenvolvedores. Para se caso entre algum novo dev, ou alguma máquina quebre. Você poder pegar uma máquina nova, rodar um “script” e ter tudo pronto, correto?

Nesse caso eu acho que o docker não é a melhor opção. Apesar de você poder instalar o que quiser em uma imagem docker, você não teria nenhuma interface gráfica para rodar uma IDE por exemplo.

Para setup de uma máquina existem outras ferramentas como o Ansible e o Vagrant, que podem te ajudar mais se esse for o seu problema.