diff --git a/config/mysql.yaml b/config/mysql.yaml index cad47a5..36870fc 100644 --- a/config/mysql.yaml +++ b/config/mysql.yaml @@ -9,4 +9,8 @@ services: environment: MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD} volumes: - - ./data/${PROJECT_NAME}/mysql:/var/lib/mysql:cached \ No newline at end of file + - mysql_data:/var/lib/mysql:cached + container_name: ${PROJECT_NAME}-mysql + +volumes: + mysql_data: \ No newline at end of file diff --git a/config/php-fpm/MySQL.Dockerfile b/config/php-fpm/MySQL.Dockerfile new file mode 100644 index 0000000..38c4cf8 --- /dev/null +++ b/config/php-fpm/MySQL.Dockerfile @@ -0,0 +1 @@ +RUN docker-php-ext-install mysqli pdo pdo_mysql > /dev/null 2>&1 \ No newline at end of file diff --git a/src/Classes/File/DockerComposeFileBuilder.php b/src/Classes/File/DockerComposeFileBuilder.php index af1dc29..5ced96a 100644 --- a/src/Classes/File/DockerComposeFileBuilder.php +++ b/src/Classes/File/DockerComposeFileBuilder.php @@ -25,6 +25,9 @@ class DockerComposeFileBuilder extends AbstractFileBuilder { $this->content = $this->config->getConfigFileContents('php.yaml'); + if ($this->config->isServerEnabled($input)) { + $this->addNginxConfig(); + } if ($this->config->isDatabaseEnabled($input)) { $databaseDriver = strtolower($this->config->getDatabaseDriver($input)); @@ -37,10 +40,6 @@ class DockerComposeFileBuilder extends AbstractFileBuilder } } - if ($this->config->isServerEnabled($input)) { - $this->addNginxConfig(); - } - return $this; } diff --git a/src/Classes/File/PHPDockerFileBuilder.php b/src/Classes/File/PHPDockerFileBuilder.php index d5f2cd5..fde178f 100644 --- a/src/Classes/File/PHPDockerFileBuilder.php +++ b/src/Classes/File/PHPDockerFileBuilder.php @@ -36,13 +36,18 @@ class PHPDockerFileBuilder extends AbstractFileBuilder $this->addNewLine(); $this->content .= $this->config->getConfigFileContents('php-fpm/Sqlite.Dockerfile'); } + + if ($this->config->getDatabaseDriver($input) ==='mysql') { + $this->addNewLine(); + $this->content .= $this->config->getConfigFileContents('php-fpm/MySQL.Dockerfile'); + } } $this->content = str_replace('${NODE_VERSION}', (string) $this->config->getNodeVersion($input), $this->content); if ($this->config->isXdebugEnabled($input)) { $this->addNewLine(); - $this->content .= $this->config->getConfigFileContents('php-fpm/Xdebug.Dockerfile'); + $this->content .= $this->config->getConfigFileContents('php-fpm/XDebug.Dockerfile'); file_put_contents( $this->config->getDataDirectory() . '/php-fpm/xdebug.ini', $this->config->getConfigFileContents('php-fpm/xdebug.ini') diff --git a/src/Command/DestroyCommand.php b/src/Command/DestroyCommand.php index 1ec6cb8..7d7a8ff 100644 --- a/src/Command/DestroyCommand.php +++ b/src/Command/DestroyCommand.php @@ -29,7 +29,8 @@ class DestroyCommand extends AbstractSpinnerCommand return Command::FAILURE; } - $this->config = new Config($input->getArgument('name')); + $projectName = $input->getArgument('name'); + $this->config = new Config($projectName); if (!file_exists($this->config->getDataDirectory())) { $this->style->error('No project found with the provided name.'); @@ -38,7 +39,7 @@ class DestroyCommand extends AbstractSpinnerCommand } try { - passthru($this->buildDockerComposeCommand('down', false, false)); + passthru($this->buildDockerComposeCommand('down -v', false, false)); recursive_rmdir($this->config->getDataDirectory()); } catch (\Exception $exception) { $this->style->error('An error occurred while destroying the project: ' . $exception->getMessage());