networks: dawarich: services: dawarich_redis: image: redis:7.0-alpine command: redis-server networks: - dawarich volumes: - shared_data:/var/shared/redis restart: always healthcheck: test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] interval: 10s retries: 5 start_period: 30s timeout: 10s dawarich_db: image: postgres:14.2-alpine container_name: dawarich_db volumes: - db_data:/var/lib/postgresql/data - shared_data:/var/shared networks: - dawarich environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password restart: always healthcheck: test: [ "CMD-SHELL", "pg_isready -U postgres -d dawarich_development" ] interval: 10s retries: 5 start_period: 30s timeout: 10s dawarich_app: image: freikin/dawarich:latest container_name: dawarich_app volumes: - gem_cache:/usr/local/bundle/gems_app - public:/var/app/public - watched:/var/app/tmp/imports/watched networks: - dawarich ports: - 3000:3000 stdin_open: true tty: true entrypoint: dev-entrypoint.sh command: ['bin/dev'] restart: on-failure environment: RAILS_ENV: development REDIS_URL: redis://dawarich_redis:6379/0 DATABASE_HOST: dawarich_db DATABASE_USERNAME: postgres DATABASE_PASSWORD: password DATABASE_NAME: dawarich_development MIN_MINUTES_SPENT_IN_CITY: 60 APPLICATION_HOST: localhost APPLICATION_HOSTS: localhost TIME_ZONE: Europe/London APPLICATION_PROTOCOL: http DISTANCE_UNIT: km PHOTON_API_HOST: photon.komoot.io PHOTON_API_USE_HTTPS: true logging: driver: "json-file" options: max-size: "100m" max-file: "5" healthcheck: test: [ "CMD-SHELL", "wget -qO - http://127.0.0.1:3000/api/v1/health | grep -q '\"status\"\\s*:\\s*\"ok\"'" ] interval: 10s retries: 5 start_period: 30s timeout: 10s depends_on: dawarich_db: condition: service_healthy restart: true dawarich_redis: condition: service_healthy restart: true deploy: resources: limits: cpus: '0.50' # Limit CPU usage to 50% of one core memory: '2G' # Limit memory usage to 2GB dawarich_sidekiq: image: freikin/dawarich:latest container_name: dawarich_sidekiq volumes: - gem_cache:/usr/local/bundle/gems_sidekiq - public:/var/app/public - watched:/var/app/tmp/imports/watched networks: - dawarich stdin_open: true tty: true entrypoint: dev-entrypoint.sh command: ['sidekiq'] restart: on-failure environment: RAILS_ENV: development REDIS_URL: redis://dawarich_redis:6379/0 DATABASE_HOST: dawarich_db DATABASE_USERNAME: postgres DATABASE_PASSWORD: password DATABASE_NAME: dawarich_development APPLICATION_HOST: localhost APPLICATION_HOSTS: localhost BACKGROUND_PROCESSING_CONCURRENCY: 10 APPLICATION_PROTOCOL: http DISTANCE_UNIT: km PHOTON_API_HOST: photon.komoot.io PHOTON_API_USE_HTTPS: true logging: driver: "json-file" options: max-size: "100m" max-file: "5" healthcheck: test: [ "CMD-SHELL", "bundle exec sidekiqmon processes | grep ${HOSTNAME}" ] interval: 10s retries: 5 start_period: 30s timeout: 10s depends_on: dawarich_db: condition: service_healthy restart: true dawarich_redis: condition: service_healthy restart: true dawarich_app: condition: service_healthy restart: true deploy: resources: limits: cpus: '0.50' # Limit CPU usage to 50% of one core memory: '2G' # Limit memory usage to 2GB volumes: db_data: gem_cache: shared_data: public: watched: