Olá, Luís! Entendo que a diferença entre ARG e ENV possa parecer um pouco confusa no início.
A instrução ARG
é usada para definir variáveis que serão utilizadas apenas durante a construção (build) da imagem Docker. Ou seja, essas variáveis não estarão disponíveis quando o container for iniciado a partir dessa imagem.
Por outro lado, a instrução ENV
é usada para definir variáveis de ambiente que estarão disponíveis durante a construção da imagem e também quando o container for iniciado. Isso significa que você pode alterar essas variáveis na hora de iniciar o container.
Para modificar uma variável de ambiente na hora de carregar o container, você pode usar a opção -e
do comando docker run
. Por exemplo, se você tem uma variável de ambiente chamada MEU_NOME
definida na sua imagem Docker, você pode alterar o valor dela ao iniciar o container da seguinte forma:
docker run -e MEU_NOME=NovoValor minha_imagem
No exemplo acima, o valor da variável de ambiente MEU_NOME
será NovoValor
dentro do container.
Espero que isso esclareça um pouco mais a diferença entre ARG e ENV e como usar cada uma delas. Lembre-se que a escolha entre usar ARG ou ENV depende muito do caso de uso específico do seu projeto.
Espero ter ajudado e bons estudos!