Class: BindDocker

Inherits:
Object
  • Object
show all
Defined in:
lib/bind_docker.rb

Constant Summary collapse

IMAGE =
'clcloud/dnsuats'
CONTAINER_NAME =
'dns-funtime'

Class Method Summary collapse

Class Method Details

.build(zonefiles_glob, named_conf) ⇒ Object



23
24
25
26
27
# File 'lib/bind_docker.rb', line 23

def self.build zonefiles_glob, named_conf
  Dir.chdir("spec/dns_files")
  `docker build -t #{IMAGE} --build-arg zonefiles_glob=#{zonefiles_glob} --build-arg named_conf=#{named_conf} .`
  Dir.chdir("../..")
end

.docker_ipObject



29
30
31
32
33
34
35
36
# File 'lib/bind_docker.rb', line 29

def self.docker_ip
  if (/darwin/ =~ RUBY_PLATFORM)
    docker_machine_info = JSON.parse `docker-machine inspect default`
    docker_machine_info['Driver']['Driver']['IPAddress']
  else
    "127.0.0.1"
  end
end

.resolve(address) ⇒ Object



19
20
21
# File 'lib/bind_docker.rb', line 19

def self.resolve address
  Resolv.getaddress(address).to_s
end

.resolve_bucket_by_region(bucket, tld) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/bind_docker.rb', line 38

def self.resolve_bucket_by_region bucket, tld
  begin
    Resolv.getaddress("#{bucket}.#{tld}").to_s
  rescue Resolv::ResolvError
    :nxdomain
  end
end

.run!Object



11
12
13
# File 'lib/bind_docker.rb', line 11

def self.run!
  `docker run -d -p 1053:53/udp -p 1053:53/tcp --name=#{CONTAINER_NAME} #{IMAGE}`
end

.stop!Object



15
16
17
# File 'lib/bind_docker.rb', line 15

def self.stop!
  `docker rm -f #{CONTAINER_NAME} > /dev/null 2>&1`
end