From 9176b6ac9beb6a6a1218200bfcb8f01d15df3cfc Mon Sep 17 00:00:00 2001 From: Server1 Date: Wed, 11 Feb 2015 19:20:18 +0100 Subject: [PATCH] Fix docker execution script --- drb_counter/Dockerfile | 2 +- mdocker | 33 +++++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/drb_counter/Dockerfile b/drb_counter/Dockerfile index aa7a6537..ee43ddf2 100644 --- a/drb_counter/Dockerfile +++ b/drb_counter/Dockerfile @@ -25,4 +25,4 @@ RUN bundle install COPY . /usr/src/app EXPOSE 9022 -CMD ["ruby", "drb_counter.rb"] +ENTRYPOINT ["ruby", "drb_counter.rb"] diff --git a/mdocker b/mdocker index 120fcc65..d83b54ea 100755 --- a/mdocker +++ b/mdocker @@ -4,31 +4,48 @@ require 'yaml' require 'active_support/all' shared_dir = Pathname.new File.expand_path('../../', __FILE__) +app_dir = Pathname.new File.expand_path('../', __FILE__) +class Runner + def execute(cmd) + puts "Running: #{cmd}" + `#{cmd}` + end +end + +runner = Runner.new prefix = "mozo_" containers = YAML.load <<-YML.strip_heredoc drb_counter: directory: drb_counter - port: 9022 + volumes: + - #{app_dir.join('config')}:config + ports: + - 9022 + arguments: + - production faye: directory: faye - port: 9296 + ports: + - 9296 YML container_names = containers.keys.map{|c| [prefix, c].join } #container_name_list = container_names.join(' ') #REBUILD containers.each do |name, settings| - `docker build -t #{prefix}#{name} #{settings['directory']}` + runner.execute "docker build -t #{prefix}#{name} #{settings['directory']}" end -running_containers = `docker ps -q #{container_names.map{|cname| "-f name=#{cname}" }.join(' ')}`.to_s.strip.split(/\s+/) -`docker stop #{running_containers.join(' ')}` if running_containers.any? +running_containers = runner.execute("docker ps -q #{container_names.map{|cname| "-f name=#{cname}" }.join(' ')}").to_s.strip.split(/\s+/) +runner.execute("docker stop #{running_containers.join(' ')}") if running_containers.any? -existing_containers = `docker ps -a -q #{container_names.map{|cname| "-f name=#{cname}" }.join(' ')}`.to_s.strip.split(/\s+/) -`docker rm #{existing_containers.join(' ')}` if existing_containers.any? +existing_containers = runner.execute("docker ps -a -q #{container_names.map{|cname| "-f name=#{cname}" }.join(' ')}").to_s.strip.split(/\s+/) +runner.execute("docker rm #{existing_containers.join(' ')}") if existing_containers.any? # RUN THE CONTAINERS containers.each do |name, settings| - `docker run -d --net=host --restart=always --name=#{prefix}#{name} #{prefix}#{name}` + volumes = Array.wrap(settings['volumes']).map{|v| "-v #{v}"}.join(' ') + arguments = Array.wrap(settings['arguments']).join(' ') + runner.execute "docker run -d --net=host --restart=always #{volumes} --name=#{prefix}#{name} #{prefix}#{name} #{arguments}" end