From f9a378a2d86bfd415f27edebfcdf903a62a9985f Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 5 Dec 2023 14:15:43 +0100 Subject: [PATCH] wip #6549 @1 --- .../Admin/Operations/Tools/DockerWebContainer.php | 5 +++++ resources/tools/dockerwebcontainer/base | 2 +- .../dockerwebcontainer/template/config/httpd/httpd.conf | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php b/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php index 07c428d80..8878950c5 100644 --- a/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php +++ b/app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php @@ -29,6 +29,7 @@ trait DockerWebContainer $form->addField('containername', Text::class, __('Nom du container'), ['prefix' => '/docker/']); $form->addField('domain', Text::class, __('Nom du domaine ou sous-domaine'), ['placeholder' => 'containername.dev.cubedesigners.com']); $form->addField('env', SelectFromArrayMultiple::class, __('Environnements'), ['default' => json_encode(['production', 'dev']), 'options' => ['production' => 'production', 'dev' => 'dev', 'staging' => 'staging', 'preprod' => 'preprod']]); + $form->addField('public', Checkbox::class, __('Racine dans le dossier "public"'), ['default' => true]); $form->addField('phpversion', SelectFromArray::class, __('Version de PHP'), ["options" => ['none' => '-', '5.6' => '5.6', @@ -60,6 +61,9 @@ trait DockerWebContainer $subDomain = $env === 'production' ? 'www.' : $env . '.'; $dockerSuffix = $env === 'production' ? '' : '-' . $env; + if (count($envs) === 1) { + $subDomain = ''; + } $variables = ['$name' => $name . $dockerSuffix, '$portadminer' => rand(10000, 60000), @@ -74,6 +78,7 @@ trait DockerWebContainer '$localeshort' => 'fr', '$sshpassword' => Str::random(16), '$fixrights' => '', + '$public' => $request->get('public') ? '/public' : '/' ]; if (!$variables['$domain']) { diff --git a/resources/tools/dockerwebcontainer/base b/resources/tools/dockerwebcontainer/base index d6a541f54..d0c1802fc 100644 --- a/resources/tools/dockerwebcontainer/base +++ b/resources/tools/dockerwebcontainer/base @@ -5,7 +5,7 @@ services: build: './images/httpd' working_dir: /application volumes: - - './www/public/:/usr/local/apache2/htdocs/' + - './www$public:/usr/local/apache2/htdocs' - './www/:/application/' - './config/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf' environment: diff --git a/resources/tools/dockerwebcontainer/template/config/httpd/httpd.conf b/resources/tools/dockerwebcontainer/template/config/httpd/httpd.conf index 3195715fc..0fa8c8e3d 100644 --- a/resources/tools/dockerwebcontainer/template/config/httpd/httpd.conf +++ b/resources/tools/dockerwebcontainer/template/config/httpd/httpd.conf @@ -264,8 +264,8 @@ ServerAdmin you@example.com # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # -DocumentRoot "/application/public" - +DocumentRoot "/application$public" + # # Possible values for the Options directive are "None", "All", # or any combination of: @@ -293,7 +293,7 @@ DocumentRoot "/application/public" Require all granted -ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://$name:9000/application/public/$1" timeout=1800 +ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://$name:9000/application$public/$1" timeout=1800 XSendFile on XSendFilePath /application -- 2.39.5