Class: Minke::Docker::DockerCompose
- Inherits:
-
Object
- Object
- Minke::Docker::DockerCompose
- Defined in:
- lib/minke/docker/docker_compose.rb
Instance Method Summary collapse
- #create_compose_network_file ⇒ Object
-
#down ⇒ Object
stop the containers in a stack and removes them as defined by the docker compose file.
-
#initialize(compose_file, system_runner) ⇒ DockerCompose
constructor
A new instance of DockerCompose.
-
#logs ⇒ Object
stream the logs for the current running stack.
-
#public_address(container, private_port) ⇒ Object
return the local address and port of a containers private port.
-
#rm ⇒ Object
remove the containers started in a stack defined by the docker compose file.
-
#up ⇒ Object
start the containers in a stack defined by the docker compose file.
Constructor Details
#initialize(compose_file, system_runner) ⇒ DockerCompose
Returns a new instance of DockerCompose.
16 17 18 19 |
# File 'lib/minke/docker/docker_compose.rb', line 16 def initialize compose_file, system_runner @compose_file = compose_file @system_runner = system_runner end |
Instance Method Details
#create_compose_network_file ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/minke/docker/docker_compose.rb', line 67 def create_compose_network_file content = { 'version' => '2'.to_s, 'networks' => {'default' => { 'external' => { 'name' => ENV['DOCKER_NETWORK'] } } } } directory = @system_runner.mktmpdir temp_file = directory + '/docker-compose.yml' @system_runner.write_file temp_file, YAML.dump(content) directory end |
#down ⇒ Object
stop the containers in a stack and removes them as defined by the docker compose file
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/minke/docker/docker_compose.rb', line 38 def down unless ENV['DOCKER_NETWORK'].to_s.empty? directory = create_compose_network_file @system_runner.execute "docker-compose -f #{@compose_file} -f #{directory + '/docker-compose.yml'} down" @system_runner.remove_entry_secure directory else @system_runner.execute "docker-compose -f #{@compose_file} down -d" end end |
#logs ⇒ Object
stream the logs for the current running stack
57 58 59 |
# File 'lib/minke/docker/docker_compose.rb', line 57 def logs @system_runner.execute "docker-compose -f #{@compose_file} logs -f" end |
#public_address(container, private_port) ⇒ Object
return the local address and port of a containers private port
63 64 65 |
# File 'lib/minke/docker/docker_compose.rb', line 63 def public_address container, private_port @system_runner.execute_and_return "docker-compose -f #{@compose_file} port #{container} #{private_port}" end |
#rm ⇒ Object
remove the containers started in a stack defined by the docker compose file
51 52 53 |
# File 'lib/minke/docker/docker_compose.rb', line 51 def rm @system_runner.execute "echo y | docker-compose -f #{@compose_file} rm -v" unless ::Docker.info["Driver"] == "btrfs" end |
#up ⇒ Object
start the containers in a stack defined by the docker compose file
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/minke/docker/docker_compose.rb', line 23 def up unless ENV['DOCKER_NETWORK'].to_s.empty? directory = create_compose_network_file @system_runner.execute "docker-compose -f #{@compose_file} -f #{directory + '/docker-compose.yml'} up -d" @system_runner.remove_entry_secure directory else @system_runner.execute "docker-compose -f #{@compose_file} up -d" end sleep 2 end |