Websites/docker-compose.yml

161 lines
3.7 KiB
YAML

x-environment: &common-env
WEBSITES_READONLY: "${READONLY:-0}"
services:
websites:
build: .
image: websites4
restart: unless-stopped
volumes:
- .:/app
- e621_thumbnail_data:/data/e621-thumbnails
- oceanic_docs_data:/data/oceanic-docs
- yiffy2_image_data:/data/yiffy2
tmpfs:
- /app/tmp/pids
environment:
<<: *common-env
RAILS_ENV: development
depends_on:
postgres:
condition: service_started
redis:
condition: service_started
labels:
- "hostname=websites4.containers.local"
tty: true
postgres:
image: postgres:14-alpine
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_USER=websites
- POSTGRES_DB=websites
- POSTGRES_HOST_AUTH_METHOD=trust
healthcheck:
interval: 5s
timeout: 2s
test: pg_isready -U websites
hostname: postgres.websites4.containers.local
labels:
- "hostname=postgres.websites4.containers.local"
networks:
- default
redis:
image: redis:alpine
command: redis-server --save 10 1 --loglevel warning
volumes:
- redis_data:/data
restart: unless-stopped
healthcheck:
test: redis-cli ping
interval: 10s
timeout: 5s
hostname: redis.websites4.containers.local
labels:
- "hostname=redis.websites4.containers.local"
networks:
- default
opensearch:
image: opensearchproject/opensearch:2.13.0
environment:
- discovery.type=single-node
- logger.level=WARN
- DISABLE_SECURITY_PLUGIN=true
- DISABLE_INSTALL_DEMO_CONFIG=true
- OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g
volumes:
- opensearch_data:/usr/share/opensearch/data
init: true
healthcheck:
interval: 5s
timeout: 2s
retries: 12
test: curl "opensearch:9200/_cluster/health?wait_for_status=yellow&timeout=2s"
hostname: opensearch.websites4.containers.local
labels:
- "hostname=opensearch.websites4.containers.local"
networks:
- default
imgen:
image: ghcr.io/donovandmc/imgen
init: true
volumes:
- ./docker/imgen:/app
restart: always
healthcheck:
interval: 10s
timeout: 2s
test: lsof -i :3621 || exit 1
depends_on:
rethinkdb:
condition: service_started
redis:
condition: service_healthy
deploy:
resources:
limits:
memory: 256M
cpus: "1"
environment:
<<: *common-env
hostname: imgen.websites4.containers.local
labels:
- "hostname=imgen.websites4.containers.local"
rethinkdb:
image: rethinkdb
command: rethinkdb --bind all -n rdb
volumes:
- rethinkdb_data:/data
deploy:
resources:
limits:
memory: 256M
reservations:
memory: 64M
restart: always
hostname: rethinkdb.websites4.containers.local
labels:
- "hostname=rethinkdb.websites4.containers.local"
iqdb:
image: ghcr.io/e621ng/iqdb:ad5e363879d4e4b80a0821253ae610b7859c5d32
command: iqdb http 0.0.0.0 5588 /iqdb/iqdb.db
healthcheck:
test: wget --no-verbose --tries=1 --spider http://127.0.0.1:5588/status || exit 1
interval: 30s
timeout: 2s
retries: 5
volumes:
- iqdb_data:/iqdb
hostname: iqdb.websites4.containers.local
labels:
- "hostname=iqdb.websites4.containers.local"
networks:
default:
name: websites4
driver: bridge
ipam:
driver: default
config:
- subnet: 172.19.2.0/27
driver_opts:
com.docker.network.bridge.name: br-websites
volumes:
db_data:
redis_data:
opensearch_data:
e621_thumbnail_data:
yiffy2_image_data:
oceanic_docs_data:
rethinkdb_data:
iqdb_data: