2021-11-14 08:12:51 -05:00
|
|
|
version: "3"
|
2021-11-13 21:31:26 -05:00
|
|
|
|
2022-03-28 10:18:07 -04:00
|
|
|
x-environment: &common-env
|
|
|
|
DATABASE_URL: postgresql://danbooru:@postgres
|
|
|
|
DANBOORU_HOSTNAME: http://localhost:3000
|
|
|
|
DANBOORU_REDIS_URL: redis://redis
|
|
|
|
DANBOORU_ELASTICSEARCH_HOST: elastic
|
|
|
|
DANBOORU_MEMCACHED_SERVERS: memcached
|
2022-04-22 11:59:47 -04:00
|
|
|
DANBOORU_IQDBS_SERVER: http://iqdb:4567
|
2022-03-28 10:18:07 -04:00
|
|
|
# These are just development secrets, do not use them in production
|
|
|
|
SECRET_TOKEN: 1c58518a891eff4520cadc59afa9e378a9325f1247544ff258096e497f095f45
|
|
|
|
SESSION_SECRET_KEY: 44b4f44e9f253c406cbe727d403d500c1cecff943e4d2aea8f5447f28846fffe
|
|
|
|
|
2022-11-09 12:18:30 -05:00
|
|
|
x-depends-on: &common-depends-on
|
|
|
|
elastic:
|
|
|
|
condition: service_healthy
|
|
|
|
memcached:
|
|
|
|
condition: service_started
|
|
|
|
postgres:
|
|
|
|
condition: service_started
|
|
|
|
redis:
|
|
|
|
condition: service_started
|
|
|
|
|
2021-11-13 21:31:26 -05:00
|
|
|
services:
|
|
|
|
e621:
|
2022-10-18 17:35:18 -04:00
|
|
|
build:
|
|
|
|
context: ./
|
|
|
|
args:
|
|
|
|
COMPOSE_PROFILES: ${COMPOSE_PROFILES-}
|
2022-03-28 10:18:07 -04:00
|
|
|
image: e621
|
2021-11-13 21:31:26 -05:00
|
|
|
volumes:
|
|
|
|
- .:/app
|
|
|
|
- public_packs:/app/public/packs
|
|
|
|
- post_data:/app/public/data
|
|
|
|
environment:
|
2022-03-28 10:18:07 -04:00
|
|
|
<<: *common-env
|
2021-11-13 21:31:26 -05:00
|
|
|
RAILS_ENV: development
|
|
|
|
depends_on:
|
2022-11-09 12:18:30 -05:00
|
|
|
<<: *common-depends-on
|
|
|
|
iqdb:
|
|
|
|
condition: service_started
|
2022-01-05 08:17:32 -05:00
|
|
|
tty: true
|
2021-11-13 21:31:26 -05:00
|
|
|
|
|
|
|
nginx:
|
2021-11-14 08:12:51 -05:00
|
|
|
image: nginx:stable-alpine
|
2021-11-13 21:31:26 -05:00
|
|
|
volumes:
|
|
|
|
- ./public:/app/public
|
|
|
|
- post_data:/app/public/data
|
|
|
|
- public_packs:/app/public/packs
|
|
|
|
- ./docker/default.conf.template:/etc/nginx/templates/default.conf.template
|
|
|
|
environment:
|
2021-11-14 08:12:51 -05:00
|
|
|
NGINX_HOST: localhost
|
|
|
|
NGINX_PORT: 3000
|
2021-11-13 21:31:26 -05:00
|
|
|
depends_on:
|
|
|
|
- e621
|
2021-11-14 08:12:51 -05:00
|
|
|
ports:
|
|
|
|
- "3000:3000"
|
2021-11-13 21:31:26 -05:00
|
|
|
|
|
|
|
postgres:
|
|
|
|
build: ./docker/postgres
|
|
|
|
environment:
|
|
|
|
- POSTGRES_USER=danbooru
|
|
|
|
- POSTGRES_HOST_AUTH_METHOD=trust
|
|
|
|
volumes:
|
|
|
|
- db_data:/var/lib/postgresql/data
|
|
|
|
ports:
|
|
|
|
- "34517:5432"
|
|
|
|
|
|
|
|
redis:
|
2021-11-14 08:12:51 -05:00
|
|
|
image: redis:alpine
|
2021-11-14 17:51:41 -05:00
|
|
|
command: redis-server --save 10 1 --loglevel warning
|
|
|
|
volumes:
|
|
|
|
- redis_data:/data
|
2021-11-13 21:31:26 -05:00
|
|
|
|
|
|
|
memcached:
|
2021-11-14 08:12:51 -05:00
|
|
|
image: memcached:alpine
|
2021-11-13 21:31:26 -05:00
|
|
|
|
|
|
|
elastic:
|
|
|
|
image: elasticsearch:7.14.2
|
|
|
|
environment:
|
|
|
|
- discovery.type=single-node
|
|
|
|
- xpack.security.enabled=false
|
2021-11-16 15:32:40 -05:00
|
|
|
- logger.level=WARN
|
2021-11-14 08:12:51 -05:00
|
|
|
- ES_JAVA_OPTS=-Xms1g -Xmx1g
|
2021-11-13 21:31:26 -05:00
|
|
|
volumes:
|
|
|
|
- elastic_data:/usr/share/elasticsearch/data
|
2022-11-09 12:18:30 -05:00
|
|
|
healthcheck:
|
|
|
|
interval: 10s
|
|
|
|
timeout: 2s
|
|
|
|
test: nc -z elastic 9200
|
2021-11-17 19:13:38 -05:00
|
|
|
|
|
|
|
iqdb:
|
|
|
|
build: ./docker/iqdb
|
|
|
|
environment:
|
|
|
|
- IQDB_HOSTNAME=localhost
|
|
|
|
- IQDB_PORT=62125
|
|
|
|
# Hardcoded in iqdbs Procfile
|
|
|
|
- IQDB_DATABASE_FILE=/home/vagrant/iqdbs/e621.db
|
|
|
|
- SINATRA_PORT=4567
|
|
|
|
- IMAGES_FOLDER=/data
|
|
|
|
- REDIS_URL=redis://redis
|
|
|
|
# Sinatra only binds to localhost in development, but to 0.0.0.0 for anything else
|
|
|
|
- APP_ENV=docker
|
|
|
|
depends_on:
|
|
|
|
- redis
|
|
|
|
volumes:
|
|
|
|
- post_data:/data
|
|
|
|
- iqdb_data:/home/vagrant/iqdbs
|
2021-11-13 21:31:26 -05:00
|
|
|
|
2022-10-18 17:35:18 -04:00
|
|
|
# Useful for development
|
|
|
|
|
|
|
|
tests:
|
|
|
|
image: e621
|
|
|
|
environment:
|
|
|
|
<<: *common-env
|
|
|
|
# Hide annoying output from libvips on corrupt files
|
|
|
|
VIPS_WARNING: "0"
|
|
|
|
volumes:
|
|
|
|
- .:/app
|
|
|
|
depends_on:
|
2022-11-09 12:18:30 -05:00
|
|
|
<<: *common-depends-on
|
|
|
|
entrypoint: bundle exec rails test
|
2022-10-18 17:35:18 -04:00
|
|
|
profiles:
|
|
|
|
- tests
|
|
|
|
|
|
|
|
rubocop:
|
|
|
|
image: e621
|
|
|
|
volumes:
|
|
|
|
- .:/app
|
|
|
|
entrypoint: bundle exec rubocop
|
|
|
|
profiles:
|
|
|
|
- rubocop
|
|
|
|
|
|
|
|
solargraph:
|
|
|
|
image: e621
|
|
|
|
entrypoint: solargraph socket -h 0.0.0.0
|
|
|
|
working_dir: $PWD
|
|
|
|
volumes:
|
|
|
|
- .:$PWD
|
|
|
|
ports:
|
|
|
|
- 7658:7658
|
|
|
|
profiles:
|
|
|
|
- solargraph
|
|
|
|
|
2021-11-13 21:31:26 -05:00
|
|
|
volumes:
|
2021-11-14 08:12:51 -05:00
|
|
|
post_data:
|
2021-11-17 19:13:38 -05:00
|
|
|
iqdb_data:
|
2021-11-13 21:31:26 -05:00
|
|
|
elastic_data:
|
2021-11-14 08:12:51 -05:00
|
|
|
db_data:
|
2021-11-14 17:51:41 -05:00
|
|
|
redis_data:
|
2021-11-13 21:31:26 -05:00
|
|
|
public_packs:
|