class Matrixeval::DockerCompose
Attributes
context[R]
Public Class Methods
new(context)
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 8 def initialize(context) @context = context end
Public Instance Methods
run(arguments)
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 12 def run(arguments) forward_arguments = arguments.map do |arg| arg.match(/\s/) ? "\"#{arg}\"" : arg end.join(" ") no_tty = %w[bash sh zsh dash].include?(arguments[0]) ? '' : '--no-TTY' system( <<~DOCKER_COMPOSE_COMMAND #{docker_compose} \ run --rm \ #{no_tty} \ #{context.docker_compose_service_name} \ #{forward_arguments} DOCKER_COMPOSE_COMMAND ) ensure stop_containers clean_containers_and_anonymous_volumes remove_network turn_on_stty_opost end
Private Instance Methods
clean_containers_and_anonymous_volumes()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 41 def clean_containers_and_anonymous_volumes system("#{docker_compose} rm -v -f >> /dev/null 2>&1") end
docker_compose()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 49 def docker_compose <<~DOCKER_COMPOSE_COMMAND.strip docker --log-level error compose \ -f #{yaml_file} \ -p matrixeval-#{project_name}-#{context.id} DOCKER_COMPOSE_COMMAND end
project_name()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 65 def project_name Config.project_name.gsub(/[^A-Za-z0-9-]/,'_').downcase end
remove_network()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 45 def remove_network system("#{docker_compose} down >> /dev/null 2>&1") end
stop_containers()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 37 def stop_containers system("#{docker_compose} stop >> /dev/null 2>&1") end
turn_on_stty_opost()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 61 def turn_on_stty_opost system("stty opost") end
yaml_file()
click to toggle source
# File lib/matrixeval/docker_compose.rb, line 57 def yaml_file ".matrixeval/docker-compose/#{context.id}.yml" end