When docker compose creates the various services, it names the
containers like <projectname>-<servicename>-<id>. If
COMPOSE_PROJECT_NAME is not set and there's no name property
at the root level of the yaml, the default project name is the
current directory. This breaks the deployment from directories
with unusable names, such as C:\.
Fixes#5304.
This should not break existing installations that are pulling from
master, as long as the base folder is danbooru/ (default for git clone).
Switch the ActiveJob backend from DelayedJob to GoodJob. Differences:
* The job worker is run with `bin/good_job start` instead of `bin/delayed_job`.
* Jobs have an 8 hour timeout instead of a 4 hour timeout.
* Jobs don't automatically retry on failure.
* Finishing jobs are preserved and pruned after 7 days.
* Listen on port 3000 instead of port 80. Port 80 is prone to conflicts
with other webservers.
* Use the production version of the Danbooru Docker image. It's less
likely to have bugs than master.
* Fix the autoinstall script to work with `curl ... | sh`.
* Lower PUMA_WORKERS to 1 to reduce memory usage.
Fix docker-compose sometimes failing to restart the app. Puma's pidfile
was stored in /tmp, which was persisted across restarts, which caused
restarts to fail because the pidfile already existed. The fix is to
mount /tmp as a tmpfs.