papermerge icon indicating copy to clipboard operation
papermerge copied to clipboard

[Docker] include checks in the app and worker image to delay initial startup until db is ready

Open maspiter opened this issue 3 years ago • 1 comments

I'm trying to build a custom docker image with app, worker and general configuration files.

I noticed that running the app for the first time generates errors in the worker and app containers because db is not ready yet.

Stopping and restarting the app makes it work but not without errors

Expected Scripts that check for readyness of the db container before completing initial setup.

Actual Errors in the app and worker application (is host db ready and accepting connections on 5432)

Info:

  • OS: QNAP
  • Browser Firefox
  • Database PostgreSQL
  • Papermerge Version built from the 1.4 subdir

maspiter avatar Oct 27 '20 20:10 maspiter

Ok, so I built a custom image with the wait-for-it.sh script in the config directory and then use the following command in my docker compose file:

command: ["/opt/app/wait-for-it.sh", "-s", "-t", "60", "db:5432", "--", "/opt/app/startup.sh"]

This starts the containers as it should on first boot. Other boots are much quicker but this to ensure the DB is ready before starting the other containers.

Would it be possible to include this script by default in the docker config files?

maspiter avatar Oct 28 '20 23:10 maspiter