Existem muitas vezes em que você precisa executar código de um diretório específico, pode ser que o aplicativo que você está executando manipule arquivos no diretório atual, seja que o aplicativo espere configuração no diretório atual, ele poderia apenas seja que o aplicativo esteja localizado no diretório atual. WORKDIR
permite que o criador da imagem configure isso para que as pessoas que executam o contêiner não precisem se preocupar com isso.
Por exemplo; Um caso de uso que eu já tive antes é criar um contêiner docker com um aplicativo que manipula arquivos no diretório atual. Sem definir WORKDIR
você teria que ligar o volume a um local e depois executar cd /location
para cada comando:
docker -v $PWD:/location someimage "cd /location; somecommand"
Ao definir WORKDIR
para /location
, você pode eliminar o cd
:
docker -v $PWD:/location someimage somecommand
O que é muito mais conveniente.