diff --git a/app/tasks/install.php b/app/tasks/install.php index 6b24fde759..3b3aa4ea67 100644 --- a/app/tasks/install.php +++ b/app/tasks/install.php @@ -129,12 +129,12 @@ $cli ->setParam('vars', $input) ; - if(!file_put_contents($path.'/docker-compose.yml.xx', $templateForCompose->render(false))) { + if(!file_put_contents($path.'/docker-compose.yml', $templateForCompose->render(false))) { Console::error('Failed to save Docker Compose file'); exit(1); } - if(!file_put_contents($path.'/.env.xx', $templateForEnv->render(false))) { + if(!file_put_contents($path.'/.env', $templateForEnv->render(false))) { Console::error('Failed to save environment variables file'); exit(1); } diff --git a/src/Appwrite/Docker/Compose/Service.php b/src/Appwrite/Docker/Compose/Service.php index 6334059475..dcb4ce7375 100644 --- a/src/Appwrite/Docker/Compose/Service.php +++ b/src/Appwrite/Docker/Compose/Service.php @@ -17,7 +17,19 @@ class Service public function __construct(array $service) { $this->service = $service; - $this->service['environment'] = isset($this->service['environment']) ? new Env(implode("\n", $this->service['environment'])) : new Env(''); + + $ports = (isset($this->service['ports']) && is_array($this->service['ports'])) ? $this->service['ports'] : []; + $this->service['ports'] = []; + + array_walk($ports, function(&$value, &$key) { + $split = explode(':', $value); + $this->service['ports'][ + (isset($split[0])) ? $split[0] : '' + ] = (isset($split[1])) ? $split[1] : ''; + }); + + $this->service['environment'] = (isset($this->service['environment']) && is_array($this->service['environment'])) ? $this->service['environment'] : []; + $this->service['environment'] = new Env(implode("\n", $this->service['environment'])); } /** @@ -46,10 +58,18 @@ class Service } /** - * @return string + * @return Env */ public function getEnvironment(): Env { return $this->service['environment']; } + + /** + * @return array + */ + public function getPorts(): array + { + return $this->service['ports']; + } } diff --git a/tests/resources/docker/docker-compose.yml b/tests/resources/docker/docker-compose.yml index 484f73b42f..4a31929470 100644 --- a/tests/resources/docker/docker-compose.yml +++ b/tests/resources/docker/docker-compose.yml @@ -15,8 +15,8 @@ services: - --accesslog=true restart: unless-stopped ports: - - 80:80 - - 443:443 + - 2080:80 + - 2443:443 - 8080:8080 volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/tests/unit/Docker/ComposeTest.php b/tests/unit/Docker/ComposeTest.php index a682269a07..b7d7c40fab 100644 --- a/tests/unit/Docker/ComposeTest.php +++ b/tests/unit/Docker/ComposeTest.php @@ -41,6 +41,7 @@ class ComposeTest extends TestCase $this->assertEquals('appwrite', $this->object->getService('appwrite')->getContainerName()); $this->assertEquals('', $this->object->getService('appwrite')->getImageVersion()); $this->assertEquals('2.2', $this->object->getService('traefik')->getImageVersion()); + $this->assertEquals(['2080' => '80', '2443' => '443', '8080' => '8080'], $this->object->getService('traefik')->getPorts()); } public function testNetworks()