Dockerfile WORKDIR também persiste na imagem

Dockerfile WORKDIR também persiste na imagem

Eu estava fazendo um tutorial online para aprender sobre dockerfiles. Houve uma pergunta do quiz:

O comando Dockerfile WORKDIR altera os diretórios:

  1. apenas para o resto do Dockerfile
  2. bem como na imagem finalizada.

Minha seleção (errada) foi: "1. somente no restante do Dockerfile".

Alguém poderia me corrigir dando um exemplo em que a segunda resposta (correta) poderia ser benéfica?

WORKDIR nos documentos

Responder1

Muitas vezes 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, pode ser que o aplicativo espere configuração no diretório atual, pode ser apenas que o o aplicativo está localizado no diretório atual. WORKDIRpermite 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 tive antes foi a criação de um contêiner docker com um aplicativo que manipula arquivos no diretório atual. Sem configuração, WORKDIRvocê teria que vincular o volume a um local e depois executar cd /locationcada comando:

docker -v $PWD:/location someimage "cd /location; somecommand"

Ao definir WORKDIRcomo /locationvocê pode eliminar cd:

docker -v $PWD:/location someimage somecommand

O que é muito mais conveniente.

informação relacionada