Este é um problema semelhante a " tail -f not seguinte arquivo de log no contêiner do Docker ", mas não tenho certeza se é a mesma causa raiz.
Estou tentando configurar um contêiner do Dock Crack simples e tenho testado vários exemplos que posso encontrar, incluindo este " link ".
FROM ubuntu:latest
# Setup cron and scripts...
...
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Run the command on container startup
CMD cron && tail -f /var/log/cron.log
O problema é que isso funciona e as tarefas agendadas são executadas, mas nada é exibido nos logs do Docker ou na saída ao executar docker run
. E sim, verifiquei que o arquivo de log está sendo gravado executando um comando docker exec
no contêiner.
Eu então testei a mudança de ubuntu:latest
para ubuntu:trusty
, pensando que poderia ter algo a ver com o Ubuntu 16. Isso resultou no seguinte erro ao iniciar o container:
tail: unrecognized file system type 0x794c7630 for '/var/log/cron.log'. please report this to [email protected]. reverting to polling
Depois de pesquisar esse erro, encontrei algumas sugestões. Então eu tentei ajustar meu arquivo docker assim:
# RUN touch /var/log/cron.log <-- remove this
CMD touch /var/log/cron.log && cron && tail -f /var/log/cron.log
Agora, quando executo isso com ubuntu:latest
e parece funcionar bem. O que exatamente está acontecendo aqui?