1
resposta

Uso do ARG e ENV

Não entendi muito bem a utilidade das instruções de variáveis. Na verdade, entendi o uso mas não consegui ver vantagem nesse caso em específico, acho que por isso não entendi, já que daria no mesmo passar a porta direto no EXPOSE. Ou então, para o ENV e passar o ENV no EXPOSE. Por que realmente deveríamos usar ARG e ENV?

1 resposta

Basicamente, Giovani, ARG, são argumentos que serão usados em tempo de build da imagem docker. Após feito o build, você não poderá mexer nessa variável da imagem já gerada. É interessante se perguntar se a porta de uma imagem deve ser sempre a mesma. Se a resposta for sim, use ARG, pois após build feito e imagem gerada, essa imagem terá a mesma porta de agora em diante. Se a resposta for não, use ENV, pois após build feito e imagem gerada, você poderá passar a porta que desejar, na hora de levantar o container baseado nessa imagem. O pessoal, as vezes, usam os dois, assim é possível alterar a porta (que o caso de exemplo) tanto na hora de fazer o build da imagem quanto na hora de fazer o run da imagem.

Não sei se ajudei, mas segue um link do stack que fala sobre isso.

https://stackoverflow.com/questions/41916386/arg-or-env-which-one-to-use-in-this-case