browsertrix/docker-compose.yml
Ilya Kreymer bf79959a5a refactoring to use statefulsets + job (#245)
- use statefulsets instead of deployments for mongo, redis, signer
- use k8s job + statefulset for running crawls
- use separate statefulset for crawl (scaled) and single-replica redis stateful set
- move crawl job update login to crawl_updater
- remove shared redis chart

package refactor:
- move to shared code to 'btrixcloud'
- move k8s to 'btrixcloud.k8s'
- move docker to 'btrixcloud.docker'
2022-06-05 10:37:17 -07:00

111 lines
2.0 KiB
YAML

version: '3.5'
services:
backend:
build: ./backend
image: webrecorder/browsertrix-backend
volumes:
- /var/run/docker.sock:/var/run/docker.sock
env_file:
- ./configs/config.env
depends_on:
- minio
- mongo
- volume_placeholder_image
# enable to expose backend api container directly
# ports:
# - 8000:8000
environment:
- CRAWLER_FQDN_SUFFIX=
frontend:
build: ./frontend
image: webrecorder/browsertrix-frontend
ports:
- 9871:80
depends_on:
- backend
environment:
- BACKEND_HOST=backend
- CRAWLER_FQDN_SUFFIX=
redis:
image: redis
command: redis-server --appendonly yes
volumes:
- btrix-redis-data:/data
mongo:
image: mongo
volumes:
- btrix-mongo-data:/data/db
env_file:
- ./configs/config.env
minio:
image: minio/minio
command: ["server", "/data", "--console-address", ":9001"]
ports:
- 9000:9000
- 9001:9001
volumes:
- btrix-minio-data:/data
env_file:
- ./configs/config.env
init_minio_bucket:
image: minio/mc
entrypoint: "/bin/sh"
command: ['-c', 'mc mb local/test-bucket; mc policy set public local/test-bucket' ]
env_file:
- ./configs/config.env
depends_on:
- minio
# adding here to ensure "tianon/true" is pulled, it's used to create volumes with configs
volume_placeholder_image:
image: tianon/true
container_name: volume_placeholder
# enable to support signing of wacz files
# port 80 must be open to automatically generate cert via LetsEncrypt
authsign:
image: webrecorder/authsign:0.4.0
volumes:
- btrix-sign-data:/data
- ./configs/signing.yaml:/app-config/signing.yaml
environment:
- CONFIG=/app-config/signing.yaml
env_file:
- ./configs/config.env
ports:
- 80:80
volumes:
btrix-redis-data:
btrix-mongo-data:
btrix-minio-data:
btrix-sign-data:
networks:
default:
name: btrix-cloud-net