DRY up docker-compose.yml with YML anchors
parent
86ef8ea818
commit
4068dc9e79
|
@ -1,6 +1,25 @@
|
|||
version: '3'
|
||||
version: '3.4'
|
||||
x-db_user: &db_user
|
||||
depends_on: ["db"]
|
||||
x-rails_job: &rails_job
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker_configs/api.Dockerfile
|
||||
env_file: .env
|
||||
volumes:
|
||||
- .:/farmbot
|
||||
- ./docker_volumes/bundle_cache:/bundle
|
||||
services:
|
||||
mqtt: # ======================================================================
|
||||
db: # ====================
|
||||
image: postgres
|
||||
volumes: ["./docker_volumes/db:/var/lib/postgresql/data"]
|
||||
env_file: .env
|
||||
web: # ====================
|
||||
<<: *rails_job
|
||||
<<: *db_user
|
||||
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -e development -p ${API_PORT:-3000} -b 0.0.0.0"
|
||||
ports: ["3000:3000"] # Web / API
|
||||
mqtt: # ====================
|
||||
build:
|
||||
context: ./docker_configs
|
||||
dockerfile: rabbitmq.Dockerfile
|
||||
|
@ -10,75 +29,21 @@ services:
|
|||
- "8883:8883" # MQTT over TLS/SSL
|
||||
- "3002:15675" # MQTT over WebSockets
|
||||
- "15672:15672" # Management API
|
||||
db: # =======================================================================
|
||||
image: postgres
|
||||
volumes:
|
||||
- ./docker_volumes/db:/var/lib/postgresql/data
|
||||
env_file:
|
||||
- .env
|
||||
web: # ======================================================================
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker_configs/api.Dockerfile
|
||||
# Add the `rm -f` part to avoid "server is still running..." errors:
|
||||
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -e development -p ${API_PORT:-3000} -b 0.0.0.0"
|
||||
volumes:
|
||||
- .:/farmbot
|
||||
- ./docker_volumes/bundle_cache:/bundle
|
||||
ports:
|
||||
- "3000:3000" # Web / API
|
||||
depends_on:
|
||||
- db
|
||||
env_file:
|
||||
- .env
|
||||
webpack: # ===================================================================
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker_configs/api.Dockerfile
|
||||
depends_on: ["web"]
|
||||
env_file: .env
|
||||
webpack: # ====================
|
||||
<<: *rails_job
|
||||
command: ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js
|
||||
volumes:
|
||||
- .:/farmbot
|
||||
- ./docker_volumes/bundle_cache:/bundle
|
||||
ports:
|
||||
- "3808:3808" # Webpack Dev Server
|
||||
depends_on:
|
||||
- web
|
||||
env_file:
|
||||
- .env
|
||||
delayed_job: # ===============================================================
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker_configs/api.Dockerfile
|
||||
ports: ["3808:3808"] # Webpack Dev Server
|
||||
delayed_job: # ====================
|
||||
<<: *rails_job
|
||||
<<: *db_user
|
||||
command: bundle exec rake jobs:work
|
||||
volumes:
|
||||
- .:/farmbot
|
||||
- ./docker_volumes/bundle_cache:/bundle
|
||||
env_file:
|
||||
- .env
|
||||
depends_on:
|
||||
- db
|
||||
log_digests: # ===============================================================
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker_configs/api.Dockerfile
|
||||
log_digests: # ====================
|
||||
<<: *rails_job
|
||||
<<: *db_user
|
||||
command: bundle exec rake api:log_digest
|
||||
volumes:
|
||||
- .:/farmbot
|
||||
- ./docker_volumes/bundle_cache:/bundle
|
||||
depends_on:
|
||||
- db
|
||||
env_file:
|
||||
- .env
|
||||
rabbit_jobs: # ===============================================================
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker_configs/api.Dockerfile
|
||||
rabbit_jobs: # ====================
|
||||
<<: *rails_job
|
||||
command: bundle exec rails r lib/rabbit_workers.rb
|
||||
volumes:
|
||||
- .:/farmbot
|
||||
- ./docker_volumes/bundle_cache:/bundle
|
||||
depends_on:
|
||||
- db
|
||||
- mqtt
|
||||
env_file:
|
||||
- .env
|
||||
depends_on: ["db","mqtt"]
|
||||
|
|
|
@ -19,7 +19,7 @@ def check_for_digests
|
|||
puts "Sending log digest to device \##{id} (#{device.name})"
|
||||
LogDeliveryMailer.log_digest(device).deliver
|
||||
end
|
||||
sleep 10
|
||||
sleep 10.minutes
|
||||
end
|
||||
|
||||
class V7Migration
|
||||
|
@ -89,6 +89,11 @@ namespace :api do
|
|||
sh "sudo docker-compose up --scale webpack=0"
|
||||
end
|
||||
|
||||
desc "Run Webpack _ONLY_. No other services"
|
||||
task webpack: :environment do
|
||||
sh "sudo docker-compose run webpack npm run webpack"
|
||||
end
|
||||
|
||||
desc "Pull the latest Farmbot API version"
|
||||
task(update: :environment) { same_thing }
|
||||
|
||||
|
|
Loading…
Reference in New Issue