Add cron to official Docker image

Review Request #11669 — Created June 21, 2021 and submitted

Information

Review Board
master

Reviewers

Add cron to official Docker image

So long as the crontab is being generated, use it for a nice out-of-box experience with Docker and search.

Created fresh test instance docker-compose with equivalent changes to this review request.

With the modified docker-entrypoint.sh in the same dir:

Dockerfile

FROM beanbag/reviewboard:4.0.2
RUN apt-get update && apt-get install -y cron
ADD docker-entrypoint.sh /

docker-compose.yml based on docker-compose.mysql.yaml

...
  reviewboard:
    build: .
    environment:
      - REVIEWBOARD_CRONTAB=/site/conf/cron.conf
...

Start instance, and create search index with docker-compose exec reviewboard /bin/bash -c 'gosu reviewboard rb-site manage /site rebuild_index'
Wait until the next cron run, and check the modified times in the search index e.g. docker-compose exec reviewboard /bin/bash -c 'ls -al /site/data/search-index/'

Summary ID
Add cron to official Docker image
b5975a346114ffaa0e3cda72a4aa5a3fc306b18e
Description From Last Updated

Upon further reflection, I think this needs to be optional on launch. The reason is that, if you have, say, …

chipx86chipx86
chipx86
  1. Thanks! This looks good. I'll test it out and we'll get it into the next release.

  2. 
      
chipx86
  1. 
      
  2. Show all issues

    Upon further reflection, I think this needs to be optional on launch.

    The reason is that, if you have, say, 5 Review Board Docker instances for a server running simultaneously, you're going to end up with 5 instances trying to clear sessions at the same time, 5 instances trying to update indexes at the same time, and that's going at best be a waste of effort and at worst lead to problems.

    Being able to control whether a particular instance is performing cron-related tasks would avoid these issues.

    The cron.conf we provide on site installation is also merely an example, which can be overridden. We probably should have a way for users to do this. That's not a blocker for getting the change in, but making cron functionality optional is.

    Let me know if you're up for doing that. Otherwise, we'll take it on (though I don't have an ETA right now).

  3. 
      
RY
chipx86
  1. Ship It!
  2. 
      
RY
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.0.x (84e8985)