Skip to content

Commit 752ef19

Browse files
authored
Merge pull request voxpupuli#125 from ekohl/containerfile
Implement writing out a containerfile for a host
2 parents 8e2e571 + e13be08 commit 752ef19

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

bin/beaker-docker

+27-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,27 @@
22
# frozen_string_literal: true
33

44
require 'rubygems' unless defined?(Gem)
5+
require 'beaker'
56
require 'beaker-docker'
67

8+
def dockerfile(hostspec, filename)
9+
ENV['BEAKER_HYPERVISOR'] = 'docker'
10+
options = Beaker::Options::Parser.new.parse_args(['--hosts', hostspec || '', '--no-provision'])
11+
options[:logger] = Beaker::Logger.new(options)
12+
network_manager = Beaker::NetworkManager.new(options, options[:logger])
13+
network_manager.provision
14+
hosts = network_manager.hosts
15+
16+
if hosts.size != 1
17+
options[:logger].error "Found #{hosts.size} hosts, expected 1"
18+
exit(1)
19+
end
20+
21+
hypervisor = network_manager.hypervisors['docker']
22+
# TODO: private method
23+
File.write(filename, hypervisor.send(:dockerfile_for, hosts.first))
24+
end
25+
726
VERSION_STRING = <<'VER'
827
_ .--.
928
( ` )
@@ -25,6 +44,13 @@ VERSION_STRING = <<'VER'
2544
'=='
2645
VER
2746

28-
puts VERSION_STRING % BeakerDocker::VERSION
47+
case ARGV[0]
48+
when 'containerfile'
49+
dockerfile(ARGV[1], ARGV[2] || 'Containerfile')
50+
when 'dockerfile'
51+
dockerfile(ARGV[1], ARGV[2] || 'Dockerfile')
52+
else
53+
puts VERSION_STRING % BeakerDocker::VERSION
54+
end
2955

3056
exit 0

0 commit comments

Comments
 (0)