161 lines
3.7 KiB
YAML
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:
|