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
102 lines
3.0 KiB
YAML
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
|