lib/jarl/docker.rb in jarl-0.8.3 vs lib/jarl/docker.rb in jarl-0.9.0

- old
+ new

@@ -96,26 +96,40 @@ rescue RuntimeError => e # omit conflicting images error reports raise unless e.to_s =~ /Command failed/ end - # Start container defined by params + # Construct options string for running a container # - def self.start(params) - container_name = params[:name] - Docker::Container.clean_containers(container_name) + def self.run_options(params) opts = [] opts << params[:volumes].map do |v| "-v #{v}" end.join(' ') opts << params[:ports].map do |p| "-p #{p}" end.join(' ') opts << params[:environment].map do |k, v| "-e #{k}='#{v}'" end.join(' ') - docker_cmd = "docker run -d #{opts.join(' ')} " \ + if params[:logging] && params[:logging][:driver] + opts << "--log-driver #{params[:logging][:driver]}" + end + if params[:logging] && params[:logging][:options] + opts << params[:logging][:options].map do |k, v| + "--log-opt #{k}='#{v}'" + end.join(' ') + end + opts.join(' ') + end + + # Start container defined by params + # + def self.start(params) + container_name = params[:name] + Docker::Container.clean_containers(container_name) + docker_cmd = "docker run -d #{run_options(params)} " \ " --hostname #{params[:hostname]} " \ " --name #{container_name} #{params[:image]} #{params[:command]}" # puts docker_cmd sh docker_cmd end @@ -123,20 +137,10 @@ # Execute container in foreground, defined by params # def self.execute(params) container_name = "#{params[:name]}.execute" Docker::Container.clean_containers(container_name) - opts = [] - opts << params[:volumes].map do |v| - "-v #{v}" - end.join(' ') - opts << params[:ports].map do |p| - "-p #{p}" - end.join(' ') - opts << params[:environment].map do |k, v| - "-e #{k}='#{v}'" - end.join(' ') - docker_cmd = "docker run -t -i --rm #{opts.join(' ')} " \ + docker_cmd = "docker run -t -i --rm #{run_options(params)} " \ " --hostname #{params[:hostname]} " \ " --name #{container_name} #{params[:image]} #{params[:command]}" # puts docker_cmd sh docker_cmd end