class AllImages::App
def run_image(image, script, interactive: false)
def run_image(image, script, interactive: false) dockerfile = @config.fetch('dockerfile').to_s tag = provide_image image, dockerfile, script envs = env.full? { |e| +' ' << e.map { |n, v| '-e %s=%s' % [ n, v.inspect ] } * ' ' } if interactive puts "You can run /script interactively now." sh "docker run --name #{name} -it#{envs} -v `pwd`:/work '#{tag}' sh" return 0 else if sh "docker run --name #{name} -it#{envs} -v `pwd`:/work '#{tag}' sh -c /script" puts green('SUCCESS') return 0 else puts red('FAILURE') return 1 end end ensure sh "docker rm -f #{name} >/dev/null" end