As we march towards v1 I would like us to tighten up our base docker image for release.
Issues I would like to see addressed:
Sane/comprehensive logging strategy.
Review of cron jobs.
Update all software, add missing stuff.
Document the base image
Comprehensive logging strategy
Logging is a bit all-over-the-place, some stuff shows up in ./launcher logs , some stuff is trapped in /var/logs. We need to have sane simple logging story. Log rotation should be running, logs should be pulled out of container in sample configs so you don’t lose a pile of logs on re-bootstrap.
Review of cron jobs
What cron jobs do we need to run? Does it make sense to even backup discourse seeing it is built in?
Update all software, add missing stuff.
For v1 we should be on latest ruby 2.0, NGINX should be updated, PG updated to latest stable, OS packages updated. I always trip on VIM missing, I think we should add it.
Anything else?
###Document the base image
Explain what the base image is, what it has and how its configured somewhere. Even as a meta topic.
@supermathie feedbacks? anything missing? Ideally you can take this one.
This lets us pull all of the state right out of the container and leave it on the host filesystem. Log rotation can then also be done from the host or the guest as we decide. The only slightly weird thing is the /shared/log/rails mount - it’s there due to the symlinks in the app dir:
I much prefer not adding a gazzilion volumes and just keeping shared and going the symlink route.
We should do all log rotation with logrotate in a cron job. Also we should log runits stuff into /logs as opposed to piping it to docker logs which is hard to find and consume.
I concur. I personally installed everything under /var/docker-discourse because I was afraid of overwriting anything important in /var/docker (other containers are used on the same server).
I never ran into trouble so far, but I’m not using evry single configuration option, so I might be in for some surprises…