DRY up docker-compose.yml with YML anchors

pull/1005/head
Rick Carlino 2018-10-03 09:46:25 -05:00
parent 86ef8ea818
commit 4068dc9e79
2 changed files with 41 additions and 71 deletions

View File

@ -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"]

View File

@ -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 }