|
@@ -40,6 +40,7 @@ from tests.integration.testcases import is_cluster
|
|
|
from tests.integration.testcases import no_cluster
|
|
|
from tests.integration.testcases import v2_1_only
|
|
|
from tests.integration.testcases import v2_2_only
|
|
|
+from tests.integration.testcases import v2_3_only
|
|
|
from tests.integration.testcases import v2_only
|
|
|
from tests.integration.testcases import v3_only
|
|
|
|
|
@@ -754,6 +755,27 @@ class ServiceTest(DockerClientTestCase):
|
|
|
|
|
|
assert service.image()
|
|
|
|
|
|
+ @v2_3_only()
|
|
|
+ def test_build_with_target(self):
|
|
|
+ self.require_api_version('1.30')
|
|
|
+ base_dir = tempfile.mkdtemp()
|
|
|
+ self.addCleanup(shutil.rmtree, base_dir)
|
|
|
+
|
|
|
+ with open(os.path.join(base_dir, 'Dockerfile'), 'w') as f:
|
|
|
+ f.write('FROM busybox as one\n')
|
|
|
+ f.write('LABEL com.docker.compose.test.target=one\n')
|
|
|
+ f.write('FROM busybox as two\n')
|
|
|
+ f.write('LABEL com.docker.compose.test.target=two\n')
|
|
|
+
|
|
|
+ service = self.create_service('buildlabels', build={
|
|
|
+ 'context': text_type(base_dir),
|
|
|
+ 'target': 'one'
|
|
|
+ })
|
|
|
+
|
|
|
+ service.build()
|
|
|
+ assert service.image()
|
|
|
+ assert service.image()['Config']['Labels']['com.docker.compose.test.target'] == 'one'
|
|
|
+
|
|
|
def test_start_container_stays_unprivileged(self):
|
|
|
service = self.create_service('web')
|
|
|
container = create_and_start_container(service).inspect()
|