Class: BindDocker
- Inherits:
-
Object
- Object
- BindDocker
- Defined in:
- lib/bind_docker.rb
Constant Summary collapse
- IMAGE =
'clcloud/dnsuats'- CONTAINER_NAME =
'dns-funtime'
Class Method Summary collapse
- .build(zonefiles_glob, named_conf) ⇒ Object
- .docker_ip ⇒ Object
- .resolve(address) ⇒ Object
- .resolve_bucket_by_region(bucket, tld) ⇒ Object
- .run! ⇒ Object
- .stop! ⇒ Object
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_ip ⇒ Object
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 |