forked from danbooru/danbooru
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yaml
96 lines (86 loc) · 3.09 KB
/
docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# 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:3000.
#
# 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"
name: danbooru
x-base-template: &base-template
user: root
# pull_policy: always # Uncomment this to always pull the latest image when deploying.
image: ghcr.io/danbooru/danbooru:production # you can change this to danbooru:master to get the latest upstream changes
environment:
RAILS_ENV: production # Set this to development to force danbooru to freshly compile js/css assets (for example if you're doing local development)
RAILS_SERVE_STATIC_FILES: true
PUMA_WORKERS: 1
DATABASE_URL: postgresql://danbooru@postgres/danbooru
DANBOORU_REDIS_URL: redis://redis:6379
DANBOORU_IQDB_URL: http://iqdb:5588
DANBOORU_CANONICAL_URL: http://localhost:3000
# # If you want to host danbooru under your own domain you need to replace the above line with the following (replace with your actual domain):
# DANBOORU_CANONICAL_URL: https://danbooru.mydomain.com
# DANBOORU_HOSTNAME: danbooru.mydomain.com
volumes:
- "danbooru-images:/danbooru/public/data"
# # If you want to do local development you can uncomment these lines to force the container to use your local changes
# # Simply replace $HOME/danbooru to where you cloned the repo
# - "$HOME/danbooru/app:/danbooru/app"
# - "$HOME/danbooru/config:/danbooru/config"
# - "$HOME/danbooru/db:/danbooru/db"
# - "$HOME/danbooru/test:/danbooru/test"
services:
danbooru:
<<: *base-template
ports:
- "3000:3000"
tmpfs:
- /tmp
depends_on:
- postgres
command: ["bash", "-c", "bin/rails db:prepare && bin/rails db:seed && bin/rails server -b 0.0.0.0"]
cron:
<<: *base-template
depends_on:
- danbooru
command: ["bash", "-c", "bin/wait-for-http http://danbooru:3000 5s && bin/rails danbooru:cron"]
jobs:
<<: *base-template
depends_on:
- danbooru
command: ["bash", "-c", "bin/wait-for-http http://danbooru:3000 5s && bin/good_job start"]
# 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