Files
danbooru/docker-compose.yaml
evazion 7e3371f758 docker-compose: use images from Github instead of DockerHub.
Use the Danbooru Docker images from the Github Container Registry
instead of the DockerHub registry for the Compose file. Github is now
considered the canonical source for Danbooru's Docker images. DockerHub
is considered a mirror.

* https://github.com/danbooru/danbooru/pkgs/container/danbooru
* https://hub.docker.com/r/evazion/danbooru
2021-09-16 00:35:30 -05:00

102 lines
3.0 KiB
YAML

# A Docker Compose file that launches a minimal Danbooru instance. This is
# suitable as a quick demo or for personal use, not for public-facing sites.
#
# This will start a Danbooru instance running on http://localhost.
#
# Usage:
#
# docker-compose up
# docker-compose down
#
# References:
#
# * https://docs.docker.com/get-docker/
# * https://docs.docker.com/compose/install/
# * https://docs.docker.com/compose/compose-file/compose-versioning
# * https://docs.docker.com/compose/release-notes
# Version 3.4 is the latest version that is supported by the version of Docker
# Compose shipped with Ubuntu 18.04 LTS (version 1.17.4).
version: "3.4"
services:
danbooru:
user: root
image: ghcr.io/danbooru/danbooru
ports:
- "80:3000"
environment:
- RAILS_ENV=production
- RAILS_SERVE_STATIC_FILES=true
- DATABASE_URL=postgresql://danbooru@postgres/danbooru
- DANBOORU_REDIS_URL=redis://redis:6379
- DANBOORU_IQDB_URL=http://iqdb:5588
- DANBOORU_CANONICAL_URL=http://localhost
volumes:
- "danbooru-images:/danbooru/public/data"
tmpfs:
- /tmp
depends_on:
- postgres
command: ["bash", "-c", "bin/rails db:setup; bin/rails db:migrate && bin/rails server -b 0.0.0.0"]
user: root
cron:
user: root
image: ghcr.io/danbooru/danbooru
environment:
- RAILS_ENV=production
- DATABASE_URL=postgresql://danbooru@postgres/danbooru
- DANBOORU_REDIS_URL=redis://redis:6379
- DANBOORU_IQDB_URL=http://iqdb:5588
- DANBOORU_CANONICAL_URL=http://localhost
depends_on:
- danbooru
volumes:
- "danbooru-images:/danbooru/public/data"
command: ["bash", "-c", "bin/wait-for-http http://danbooru:3000 5s && bin/rails danbooru:cron"]
delayed_jobs:
# We need root to write temp upload files in the images directory (/danbooru/public/data)
user: root
image: ghcr.io/danbooru/danbooru
environment:
- RAILS_ENV=production
- DATABASE_URL=postgresql://danbooru@postgres/danbooru
- DANBOORU_REDIS_URL=redis://redis:6379
- DANBOORU_IQDB_URL=http://iqdb:5588
- DANBOORU_CANONICAL_URL=http://localhost
depends_on:
- danbooru
volumes:
# We need access to images so we can add/remove images to IQDB.
- "danbooru-images:/danbooru/public/data"
command: ["bash", "-c", "bin/wait-for-http http://danbooru:3000 5s && bin/delayed_job run"]
# https://github.com/danbooru/iqdb
# https://hub.docker.com/repository/docker/evazion/iqdb
iqdb:
image: evazion/iqdb
volumes:
- "iqdb-data:/iqdb/data"
command: ["http", "0.0.0.0", "5588", "/iqdb/data/iqdb.sqlite"]
redis:
image: redis
postgres:
image: evazion/postgres
environment:
POSTGRES_USER: danbooru
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- "danbooru-data:/var/lib/postgresql/data"
volumes:
danbooru-images:
name: danbooru-images
danbooru-data:
name: danbooru-data
iqdb-data:
name: iqdb-data