# This docker compose is used for quick setups of the site and database which # the bot project relies on for testing. Use it if you haven't got a # ready-to-use site environment already setup. version: "3.7" x-logging: &logging logging: driver: "json-file" options: max-file: "5" max-size: "10m" x-restart-policy: &restart_policy restart: unless-stopped services: postgres: << : *logging << : *restart_policy image: postgres:13-alpine environment: POSTGRES_DB: pysite POSTGRES_PASSWORD: pysite POSTGRES_USER: pysite healthcheck: test: ["CMD-SHELL", "pg_isready -U pysite"] interval: 2s timeout: 1s retries: 5 redis: << : *logging << : *restart_policy image: redis:5.0.9 ports: - "127.0.0.1:6379:6379" metricity: << : *logging << : *restart_policy restart: on-failure # USE_METRICITY=false will stop the container, so this ensures it only restarts on error depends_on: postgres: condition: service_healthy image: ghcr.io/python-discord/metricity:latest env_file: - .env environment: DATABASE_URI: postgres://pysite:pysite@postgres/metricity USE_METRICITY: ${USE_METRICITY-false} volumes: - .:/tmp/bot:ro snekbox: << : *logging << : *restart_policy image: ghcr.io/python-discord/snekbox:latest init: true ipc: none ports: - "127.0.0.1:8060:8060" privileged: true profiles: - "3.10" snekbox-311: << : *logging << : *restart_policy image: ghcr.io/python-discord/snekbox:3.11-dev init: true ipc: none ports: - "127.0.0.1:8065:8060" privileged: true web: << : *logging << : *restart_policy image: ghcr.io/python-discord/site:latest command: ["run", "--debug"] networks: default: aliases: - api.web - admin.web - staff.web ports: - "127.0.0.1:8000:8000" tty: true depends_on: - metricity environment: DATABASE_URL: postgres://pysite:pysite@postgres:5432/pysite METRICITY_DB_URL: postgres://pysite:pysite@postgres:5432/metricity SECRET_KEY: suitable-for-development-only STATIC_ROOT: /var/www/static bot: << : *logging << : *restart_policy build: context: . dockerfile: Dockerfile volumes: - .:/bot:ro tty: true depends_on: - web - redis - snekbox-311 env_file: - .env environment: BOT_API_KEY: badbot13m0n8f570f942013fc818f234916ca531