Skip to content

Commit

Permalink
Some services TemplatedFiles generation bugs fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
Ph3nol committed Aug 18, 2017
1 parent 4b4a29c commit 8aabf99
Show file tree
Hide file tree
Showing 9 changed files with 35 additions and 17 deletions.
Binary file modified dist/docker-arch.phar
Binary file not shown.
17 changes: 10 additions & 7 deletions src/Application/Architect.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,26 +85,29 @@ public function generate($projectPath): void
$project->addTemplatedFile(new TemplatedFile('docker-sync.yml', 'Base/docker-sync.yml.twig'));
}

// Project files dump.
foreach ($project->getTemplatedFiles() as $templatedFile) {
$fileContent = $this->getTemplatedFileGenerator()->render($templatedFile->getViewPath(), [
'project' => $project,
]);
$fileContent = $this->getTemplatedFileGenerator()->render($templatedFile->getViewPath(), array_merge(
['project' => $project],
$templatedFile->getParameters()
));
$this->fs->dumpFile($tmpBuildDir.'/'.$templatedFile->getRemotePath(), $fileContent);
if ($chmod = $templatedFile->getChmod()) {
$this->fs->chmod($tmpBuildDir.'/'.$templatedFile->getRemotePath(), $chmod);
}
}

// Project services files, with dump.
foreach ($project->getServices() as $service) {
$serviceTmpBuildDir = sprintf('%s/%s', $tmpBuildDir, $service->getIdentifier());

$service->addTemplatedFile(new TemplatedFile('Dockerfile', 'Base/Service/Dockerfile.twig'));

foreach ($service->getTemplatedFiles() as $templatedFile) {
$fileContent = $this->getTemplatedFileGenerator()->render($templatedFile->getViewPath(), [
'project' => $project,
'service' => $service,
]);
$fileContent = $this->getTemplatedFileGenerator()->render($templatedFile->getViewPath(), array_merge(
['project' => $project, 'service' => $service],
$templatedFile->getParameters()
));
$this->fs->dumpFile($serviceTmpBuildDir.'/'.$templatedFile->getRemotePath(), $fileContent);
if ($chmod = $templatedFile->getChmod()) {
$this->fs->chmod($serviceTmpBuildDir.'/'.$templatedFile->getRemotePath(), $chmod);
Expand Down
11 changes: 8 additions & 3 deletions src/Application/DockerContainer/NginxDockerContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ public function init(): void
}

/**
* @return void
* @return boolean
*/
private function addVhostsTemplatedFiles(): void
private function addVhostsTemplatedFiles(): bool
{
$projectService = $this->getService();

Expand All @@ -56,9 +56,11 @@ private function addVhostsTemplatedFiles(): void
$vhostsServicesByHost[$service->getHost()] = $service;
}
}

$hasGeneratedVhosts = false;
$vhostIndex = 0;
foreach ($vhostsServicesByHost as $host => $service) {
$vhostName = $service->getType();
$vhostName = $service->getName();
$appType = $service->getOptions()['appType'] ?? null;
$templatePath = sprintf(
'Service/Nginx/vhosts/%s%s.conf.twig',
Expand All @@ -76,6 +78,9 @@ private function addVhostsTemplatedFiles(): void
]));

++$vhostIndex;
$hasGeneratedVhosts = true;
}

return $hasGeneratedVhosts;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{% set project = generator.project %}
{% set service = generator.service %}
{% set host = forService.host|default('localhost') %}
server {
server_name {{ host }};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{% set project = generator.project %}
{% set service = generator.service %}
{% set host = forService.host|default('localhost') %}
server {
server_name {{ host }};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
{% set project = generator.project %}
{% set service = generator.service %}
{% set host = forService.host|default('localhost') %}
server {
server_name {{ host }};
Expand Down
9 changes: 8 additions & 1 deletion src/Domain/DockerContainer/Model/DockerContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,14 @@ public function __construct(ServiceInterface $service)
{
$this->service = $service;
$this->setMaintainer('Docker Arch <https://github.com/Ph3nol/Docker-Arch>');
$this->init();
$this->addEnv('DOCKER_CONTAINER_NAME', $service->getIdentifier());
}

/**
* {@inheritdoc}
*/
public function init(): void
{
}

/**
Expand Down
4 changes: 4 additions & 0 deletions src/Domain/DockerContainer/Model/DockerContainerInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,8 @@
*/
interface DockerContainerInterface
{
/**
* @return void
*/
public function init(): void;
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ public function toModel($data, $jsonString = true): ProjectInterface
$project->addService($service);
}

// Project services Docker containers initialization.
foreach ($project->getServices() as $service) {
$service->getDockerContainer()->init();
}

return $project;
}
}

0 comments on commit 8aabf99

Please sign in to comment.