addService("Base")->image("ubuntu:16.10"); $composer->addService("Ftth")->image("ubuntu:17.10"); $composer->addService("ubuntu")->image("ubuntu"); $composer->addService("custom")->build("./custom"); $composer->addService("test1")->build("./custom1")->addVolumes('volumen_test1_test2', '/opt/test1'); $composer->addService("test2")->build("./custom2")->addVolumes('volumen_test1_test2', '/opt/test2') ->network('flowdat3')->ipv4_address("172.172.172.2"); $composer->addService("test3")->build("./custom3") ->setReservationMemory("1G") ->setReservationCPU("1") ->setLimitCPU("0.3"); $composer->getVolumes()->addVolumen('volumen_test1_test2', 'local'); $nc = new \Docker\Composer\NetworkConfig(); $nc->addDriver()->addSubnetGateway(); $composer->getNetwork()->addDriver('flowdat3')->addConfig('flowdat3', $nc); $rtr = Yaml::parse($composer->render()); $expected = array( "version" => "2.2", "services" => array( "Base" => array("image" => "ubuntu:16.10"), "Ftth" => array("image" => "ubuntu:17.10"), "ubuntu" => array("image" => "ubuntu"), "custom" => array("build" => array("context" => "./custom")), "test1" => array("build" => array("context" => "./custom1"), "volumes" => array('volumen_test1_test2:/opt/test1')), "test2" => array("build" => array("context" => "./custom2"), "volumes" => array('volumen_test1_test2:/opt/test2'), "networks" => array("flowdat3" => array("ipv4_address" => "172.172.172.2"))), "test3" => array("build" => array("context" => "./custom3"), "deploy" => array('resources' => array('reservations' => array("memory" => "1G", "cpus" => "1"), 'limits' => array("cpus" => "0.3")))), ), "volumes" => array('volumen_test1_test2' => array('driver' => 'local')), "networks" => array('flowdat3' => array('driver' => 'bridge', 'ipam' => array('driver' => 'default', 'config' => array(array('subnet' => '172.172.172.0/24')))))); $this->assertEquals($expected, $rtr); } }