Dockerfile WORKDIR também persiste na imagem

2

Eu estava fazendo um tutorial on-line para aprender sobre dockerfiles. Houve uma pergunta do questionário:

The Dockerfile WORKDIR command changes directories:

  1. only for the rest of the Dockerfile
  2. as well as in the finished image.

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

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

WORKDIR nos documentos

    
por Fred J. 04.10.2016 / 00:28

1 resposta

1

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.

    
por 04.10.2016 / 02:20

Tags