# 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: image: evazion/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_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: image: evazion/danbooru environment: - RAILS_ENV=production - DATABASE_URL=postgresql://danbooru@postgres/danbooru - DANBOORU_REDIS_URL=redis://redis:6379 - DANBOORU_CANONICAL_URL=http://localhost depends_on: - danbooru command: ["bash", "-c", "bin/wait-for-http http://danbooru:3000 5s && bin/rails danbooru:cron"] delayed_jobs: image: evazion/danbooru environment: - RAILS_ENV=production - DATABASE_URL=postgresql://danbooru@postgres/danbooru - DANBOORU_REDIS_URL=redis://redis:6379 - DANBOORU_CANONICAL_URL=http://localhost depends_on: - danbooru command: ["bash", "-c", "bin/wait-for-http http://danbooru:3000 5s && bin/delayed_job run"] 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