class Minke::Docker::DockerCompose
Public Class Methods
new(compose_file, system_runner, project_name, docker_network = nil)
click to toggle source
# File lib/minke/docker/docker_compose.rb, line 18 def initialize compose_file, system_runner, project_name, docker_network = nil @project_name = project_name @compose_file = compose_file @system_runner = system_runner @docker_network = docker_network ||= 'bridge' end
Public Instance Methods
create_compose()
click to toggle source
# File lib/minke/docker/docker_compose.rb, line 76 def create_compose existing = YAML.load(File.read(@compose_file)) services = {} existing['services'].keys.each do |key| newservice = existing['services'][key].merge({'external_links' => ["#{@project_name}_consul_1:consul"]}) services[key] = newservice end compose = { 'version' => 2.to_s, 'services' => services } compose end
create_compose_network()
click to toggle source
# File lib/minke/docker/docker_compose.rb, line 68 def create_compose_network { 'networks' => {'default' => { 'external' => { 'name' => @docker_network } } } } end
down()
click to toggle source
stop the containers in a stack and removes them as defined by the docker compose file
# File lib/minke/docker/docker_compose.rb, line 34 def down execute_command "down -v" end
execute_command(command)
click to toggle source
# File lib/minke/docker/docker_compose.rb, line 50 def execute_command command hash = create_compose unless @docker_network == nil hash.merge!(create_compose_network) end directory = File.dirname(@compose_file) temp_file = directory + '/tmp_docker-compose.yml' @system_runner.write_file temp_file, YAML.dump(hash) ex = "docker-compose -f #{temp_file} -p #{@project_name} #{command}" @system_runner.execute ex @system_runner.remove_entry_secure temp_file end
logs()
click to toggle source
stream the logs for the current running stack
# File lib/minke/docker/docker_compose.rb, line 46 def logs execute_command 'logs -f' end
rm()
click to toggle source
remove the containers started in a stack defined by the docker compose file
# File lib/minke/docker/docker_compose.rb, line 40 def rm execute_command 'rm -v' unless ::Docker.info["Driver"] == "btrfs" end
services()
click to toggle source
# File lib/minke/docker/docker_compose.rb, line 72 def services create_compose['services'] end
up()
click to toggle source
start the containers in a stack defined by the docker compose file
# File lib/minke/docker/docker_compose.rb, line 27 def up execute_command "up -d" sleep 2 end