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:
|
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:
|
build:
|
||||||
context: ./docker_configs
|
context: ./docker_configs
|
||||||
dockerfile: rabbitmq.Dockerfile
|
dockerfile: rabbitmq.Dockerfile
|
||||||
|
@ -10,75 +29,21 @@ services:
|
||||||
- "8883:8883" # MQTT over TLS/SSL
|
- "8883:8883" # MQTT over TLS/SSL
|
||||||
- "3002:15675" # MQTT over WebSockets
|
- "3002:15675" # MQTT over WebSockets
|
||||||
- "15672:15672" # Management API
|
- "15672:15672" # Management API
|
||||||
db: # =======================================================================
|
depends_on: ["web"]
|
||||||
image: postgres
|
env_file: .env
|
||||||
volumes:
|
webpack: # ====================
|
||||||
- ./docker_volumes/db:/var/lib/postgresql/data
|
<<: *rails_job
|
||||||
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
|
|
||||||
command: ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js
|
command: ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js
|
||||||
volumes:
|
ports: ["3808:3808"] # Webpack Dev Server
|
||||||
- .:/farmbot
|
delayed_job: # ====================
|
||||||
- ./docker_volumes/bundle_cache:/bundle
|
<<: *rails_job
|
||||||
ports:
|
<<: *db_user
|
||||||
- "3808:3808" # Webpack Dev Server
|
|
||||||
depends_on:
|
|
||||||
- web
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
delayed_job: # ===============================================================
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker_configs/api.Dockerfile
|
|
||||||
command: bundle exec rake jobs:work
|
command: bundle exec rake jobs:work
|
||||||
volumes:
|
log_digests: # ====================
|
||||||
- .:/farmbot
|
<<: *rails_job
|
||||||
- ./docker_volumes/bundle_cache:/bundle
|
<<: *db_user
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
log_digests: # ===============================================================
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker_configs/api.Dockerfile
|
|
||||||
command: bundle exec rake api:log_digest
|
command: bundle exec rake api:log_digest
|
||||||
volumes:
|
rabbit_jobs: # ====================
|
||||||
- .:/farmbot
|
<<: *rails_job
|
||||||
- ./docker_volumes/bundle_cache:/bundle
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
rabbit_jobs: # ===============================================================
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker_configs/api.Dockerfile
|
|
||||||
command: bundle exec rails r lib/rabbit_workers.rb
|
command: bundle exec rails r lib/rabbit_workers.rb
|
||||||
volumes:
|
depends_on: ["db","mqtt"]
|
||||||
- .:/farmbot
|
|
||||||
- ./docker_volumes/bundle_cache:/bundle
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
- mqtt
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ def check_for_digests
|
||||||
puts "Sending log digest to device \##{id} (#{device.name})"
|
puts "Sending log digest to device \##{id} (#{device.name})"
|
||||||
LogDeliveryMailer.log_digest(device).deliver
|
LogDeliveryMailer.log_digest(device).deliver
|
||||||
end
|
end
|
||||||
sleep 10
|
sleep 10.minutes
|
||||||
end
|
end
|
||||||
|
|
||||||
class V7Migration
|
class V7Migration
|
||||||
|
@ -89,6 +89,11 @@ namespace :api do
|
||||||
sh "sudo docker-compose up --scale webpack=0"
|
sh "sudo docker-compose up --scale webpack=0"
|
||||||
end
|
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"
|
desc "Pull the latest Farmbot API version"
|
||||||
task(update: :environment) { same_thing }
|
task(update: :environment) { same_thing }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue