Pārlūkot izejas kodu

Merge pull request #1172 from aanand/fix-dns

Fix regression in Dns and DnsSearch settings
Ben Firshman 10 gadi atpakaļ
vecāks
revīzija
9aab7bc242
2 mainītis faili ar 13 papildinājumiem un 2 dzēšanām
  1. 3 2
      compose/service.py
  2. 10 0
      tests/integration/service_test.py

+ 3 - 2
compose/service.py

@@ -6,6 +6,7 @@ import re
 import os
 from operator import attrgetter
 import sys
+import six
 
 from docker.errors import APIError
 from docker.utils import create_host_config
@@ -435,11 +436,11 @@ class Service(object):
         cap_drop = options.get('cap_drop', None)
 
         dns = options.get('dns', None)
-        if not isinstance(dns, list):
+        if isinstance(dns, six.string_types):
             dns = [dns]
 
         dns_search = options.get('dns_search', None)
-        if not isinstance(dns_search, list):
+        if isinstance(dns_search, six.string_types):
             dns_search = [dns_search]
 
         restart = parse_restart_spec(options.get('restart', None))

+ 10 - 0
tests/integration/service_test.py

@@ -424,6 +424,11 @@ class ServiceTest(DockerClientTestCase):
         container = create_and_start_container(service)
         self.assertEqual(container.get('HostConfig.NetworkMode'), 'host')
 
+    def test_dns_no_value(self):
+        service = self.create_service('web')
+        container = create_and_start_container(service)
+        self.assertIsNone(container.get('HostConfig.Dns'))
+
     def test_dns_single_value(self):
         service = self.create_service('web', dns='8.8.8.8')
         container = create_and_start_container(service)
@@ -455,6 +460,11 @@ class ServiceTest(DockerClientTestCase):
         container = create_and_start_container(service)
         self.assertEqual(container.get('HostConfig.CapDrop'), ['SYS_ADMIN', 'NET_ADMIN'])
 
+    def test_dns_search_no_value(self):
+        service = self.create_service('web')
+        container = create_and_start_container(service)
+        self.assertIsNone(container.get('HostConfig.DnsSearch'))
+
     def test_dns_search_single_value(self):
         service = self.create_service('web', dns_search='example.com')
         container = create_and_start_container(service)