Fix docker execution script
This commit is contained in:
@@ -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"]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user