diff --git a/docker-compose.yml b/docker-compose.yml index 8bcf23343..f8feb9ed6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,24 +1,32 @@ version: '3.4' + x-db_user: &db_user depends_on: ["db", "redis"] + x-rails: &rails image: farmbot_web - env_file: .env volumes: - .:/farmbot - ./docker_volumes/bundle_cache:/bundle + +x-base_config: &base_config + env_file: .env + restart: unless-stopped + services: redis: + <<: *base_config image: redis volumes: - ./docker_volumes/redis/data:/data - ./docker_volumes/redis/conf:/usr/local/etc/redis ports: ["6379:6379"] db: # ==================== + <<: *base_config image: postgres volumes: ["./docker_volumes/db:/var/lib/postgresql/data"] - env_file: .env web: # ==================== + <<: *base_config <<: *db_user <<: *rails build: @@ -27,6 +35,7 @@ services: command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -e development -p 3000 -b 0.0.0.0" ports: ["3000:3000"] # Web / API mqtt: # ==================== + <<: *base_config build: context: ./docker_configs dockerfile: rabbitmq.Dockerfile @@ -37,25 +46,27 @@ services: - "3002:15675" # MQTT over WebSockets - "15672:15672" # Management API depends_on: ["web"] - env_file: .env environment: - RABBITMQ_CONFIG_FILE=/farmbot/farmbot_rmq_config volumes: - ./docker_volumes/rabbit:/farmbot webpack: # ==================== + <<: *base_config <<: *rails command: ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js ports: ["3808:3808"] # Webpack Dev Server delayed_job: # ==================== + <<: *base_config <<: *rails depends_on: ["db","mqtt"] command: bundle exec rake jobs:work - restart: "always" log_digests: # ==================== + <<: *base_config <<: *rails <<: *db_user command: bundle exec rake api:log_digest rabbit_jobs: # ==================== + <<: *base_config <<: *rails depends_on: ["db","mqtt"] command: bundle exec rails r lib/rabbit_workers.rb