我想知道如何获取来自 Docker 容器的 gem 任务日志。
task my_task: :environment do
Rails.logger.info 'start task'
MyModel.call_some_method
end
任务运行良好,我可以通过对数据库表所做的更改看到它。 但由于某种原因我无法从容器中获取任何日志信息。
我可以从容器中获取的唯一日志是:
# docker logs containerId
[write] crontab file updated
我尝试在schedule.rb中评论
:output
值或使用set :output, '/dev/stdout'
。
但还是没有成功。
Dockerfile:
...
ENTRYPOINT ["/rails/bin/docker-cron-entrypoint"]
CMD ["cron", "-f"]
docker-cron-入口点文件:
#!/bin/bash -e
bundle exec whenever --update-crontab
exec "${@}"
检查这一点:通过 docker 日志查看 cron 输出,而不使用额外的文件
根据您使用的图像,正确答案可能会有所不同。我从来没有以这种方式使用过这个宝石,但似乎你需要玩那些
/proc/1/fd/1
,等等。