Fix docker execution script

This commit is contained in:
Server1
2015-02-11 19:20:18 +01:00
parent 2204eb6f93
commit 9176b6ac9b
2 changed files with 26 additions and 9 deletions
+1 -1
View File
@@ -25,4 +25,4 @@ RUN bundle install
COPY . /usr/src/app COPY . /usr/src/app
EXPOSE 9022 EXPOSE 9022
CMD ["ruby", "drb_counter.rb"] ENTRYPOINT ["ruby", "drb_counter.rb"]
+25 -8
View File
@@ -4,31 +4,48 @@ require 'yaml'
require 'active_support/all' require 'active_support/all'
shared_dir = Pathname.new File.expand_path('../../', __FILE__) 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_" prefix = "mozo_"
containers = YAML.load <<-YML.strip_heredoc containers = YAML.load <<-YML.strip_heredoc
drb_counter: drb_counter:
directory: drb_counter directory: drb_counter
port: 9022 volumes:
- #{app_dir.join('config')}:config
ports:
- 9022
arguments:
- production
faye: faye:
directory: faye directory: faye
port: 9296 ports:
- 9296
YML YML
container_names = containers.keys.map{|c| [prefix, c].join } container_names = containers.keys.map{|c| [prefix, c].join }
#container_name_list = container_names.join(' ') #container_name_list = container_names.join(' ')
#REBUILD #REBUILD
containers.each do |name, settings| containers.each do |name, settings|
`docker build -t #{prefix}#{name} #{settings['directory']}` runner.execute "docker build -t #{prefix}#{name} #{settings['directory']}"
end end
running_containers = `docker ps -q #{container_names.map{|cname| "-f name=#{cname}" }.join(' ')}`.to_s.strip.split(/\s+/) running_containers = runner.execute("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? 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+/) existing_containers = runner.execute("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? runner.execute("docker rm #{existing_containers.join(' ')}") if existing_containers.any?
# RUN THE CONTAINERS # RUN THE CONTAINERS
containers.each do |name, settings| 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 end