Olá,
Como eu faço para configurar o log no docker-compose, os tutoriais que vi mencionam a utilização do volume para que possa externalizar um arquivo de log do container para um host, mas, como é feito ?
Olá,
Como eu faço para configurar o log no docker-compose, os tutoriais que vi mencionam a utilização do volume para que possa externalizar um arquivo de log do container para um host, mas, como é feito ?
Olá Bruno, tudo bem? Você fala em ver os logs dos containers é isso? Bem se for isso pode ser feito na linha de comando simplesmente usando o comando:
docker container logs --f <container-ID>
Isso usando o somente o Docker, já com o docker-compose podemos usar esse comando:
docker-compose logs
Que vai exibir os logs de todos os serviços no aplicativo definido no arquivo "docker-compose.yml", ou então esse outro comando:
docker-compose logs <nome-do-servico>
Para exibir os logs de um serviço especifico. É isso que você deseja ou é sobre logs de um projeto em si, de uma aplicação? Se for, então qual a aplicação, as tecnologias que você está utilizando nessa aplicação, e como a mesma gera e armazena os logs?
Fala pra gente essas informações, para podermos ajudar da melhor forma!
Olá Jonilson, obrigado pela atenção.
As instruções que você passou são para exibir os logs, no entanto, gostaria de saber como faço para armazenar os logs ?
Pesquisei na internet, e algumas instruções dizem para utilizar o "volume", através dos seguintes passos:
Efetuei esses passos, mas, o arquivo de log só aparece no container, ao acessar o mesmo caminho a máquina host o arquivo.log não existe.
Ao encerrar o container as informações gravadas no arquivo.log são reescritas e eu perco as informações anteriores. Necessito que o log seja gravado e armazenado e que não se perca quando ocorrer por exemplo a queda do servidor.
Como posso fazer essa configuração ?
Tem algumas coisas que não ficaram claro pra mim, quem cria esse <arquivo.log>
? Ele é criado pelo container ou diretamente pelo host? É um simples arquivo de teste é isso? E como os logs serão armazenados nesse arquivo é atraves de um comando Linux mesmo? Bem, mesmo com essas dúvidas acima, vou tentar explicar como deveria ser, esse arquivo.log
você deveria já criar o mesmo na pasta /var/log/
, para poder compartilhar com o container por meio do bind de pastas (volumes
) no arquivo docker-compose.yml
, e além disso, qualquer que seja a estrategia que você esteja utilizando para salvar os logs nesse arquivo, você deve fazer com que apenas adicione novas linhas no arquivo sem excluir as anteriores, podendo ser algo como:
echo "NOVA LINHA DE LOG" >> /var/log/arquivo.log
Teste essa solução e fala pra gente se funcionou!