Construir nova imagem, perder antigos dados de volue?

1

No meu arquivo de compilação do docker, especifico dois serviços: phpant (uma imagem personalizada derivada do debian com PHP compilado e postfix sendo executado para que o PHP possa realmente enviar e-mails) e um serviço mysqldb que retira o mais recente do hub do docker. p>

No serviço phpant, eu defino um volume:

volumes:
   - "/var/www/html/config/"

Após a instalação, gravamos arquivos de configuração nessa pasta. Estamos usando um volume porque queremos que os dados de configuração persistam mesmo se lançarmos uma imagem nova / atualizada.

No entanto, quando pressionamos uma nova imagem, estamos perdendo os arquivos de configuração e esse diretório fica vazio.

O que eu fiz de errado? Como obtenho o volume de dados para persistir mesmo depois de atualizar a imagem do docker para esse serviço?

Nota : A imagem do Wordpress parece fazer isso corretamente, que é onde eu tive a idéia em primeiro lugar. Eu tentei imitar o que eles fizeram, mas claramente, eu pulei / perdi um passo.

    
por DrDamnit 25.01.2018 / 20:07

1 resposta

1

Você especificou somente um caminho dentro do contêiner para o seu volume. Nesta configuração, o Docker cria um novo volume toda vez que o contêiner é recriado.

Se você deseja que os dados do volume sejam persistentes, é necessário especificar um caminho acessível para o host do contêiner onde os dados do volume podem ser armazenados. Por exemplo, em relação ao seu docker-compose.yml :

volumes:
  - ./config:/var/www/html/config

Consulte a documentação para mais formas de configurar volumes.

    
por 25.01.2018 / 20:23