diff --git a/generator/index.php b/generator/index.php index 992546f5..d2d8cfec 100644 --- a/generator/index.php +++ b/generator/index.php @@ -102,6 +102,7 @@ public function encode($value) $defaultPort = $projectData['_defaultPort'] = getDefaultPort($projectData); $hosts = $projectData['_hosts'] = retrieveHostNames($projectData); $projectData['_phpExtensions'] = buildPhpExtensionList($projectData); +$projectData['_phpSpx'] = buildPhpSpx($projectData); $projectData['_phpIni'] = buildPhpIniAdditionalConfig($projectData); $projectData['_envs'] = array_merge( getAdditionalEnvVariables($projectData), @@ -1102,6 +1103,22 @@ function buildPhpExtensionList(array $projectData): array return $projectData['image']['php']['enabled-extensions'] ?? []; } +/** + * @param array $projectData + * + * @return array + */ +function buildPhpSpx(array $projectData): array +{ + $configs = $projectData['image']['php']['php-spx'] ?? []; + + if (count($configs) === 0) { + return []; + } + + return array_merge(...$configs); +} + /** * @param array $projectData * diff --git a/images/common/application/Dockerfile.twig b/images/common/application/Dockerfile.twig index 982a4c75..6c3b56f7 100644 --- a/images/common/application/Dockerfile.twig +++ b/images/common/application/Dockerfile.twig @@ -56,6 +56,29 @@ RUN mv /usr/local/etc/php/disabled/{{phpExtention}}.ini /usr/local/etc/php/conf. COPY php/conf.d/99-from-deploy-yaml-php.ini /usr/local/etc/php/conf.d/ +# PHP-SPX +{% if _phpSpx is defined and _phpSpx.enabled|default(false) %} +RUN apk add --no-cache \ + git \ + autoconf \ + build-base \ + zlib-dev + +RUN git clone https://github.com/NoiseByNorthwest/php-spx.git \ + && cd php-spx \ + && git checkout release/latest \ + && phpize \ + && ./configure \ + && make \ + && make install + +RUN echo "extension=spx.so" > /usr/local/etc/php/conf.d/spx.ini && \ + echo "spx.http_enabled={{ _phpSpx.http_enabled|default(0) }}" >> /usr/local/etc/php/conf.d/spx.ini && \ + echo "spx.http_key=\"{{ _phpSpx.key|default("dev") }}\"" >> /usr/local/etc/php/conf.d/spx.ini && \ + echo "spx.data_dir=\"{{ _phpSpx.data_dir|default("/data/data/tmp/spx") }}\"" >> /usr/local/etc/php/conf.d/spx.ini && \ + echo "spx.http_ip_whitelist=\"{{ _phpSpx.http_ip_whitelist|default("*") }}\"" >> /usr/local/etc/php/conf.d/spx.ini +{% endif %} + # Jenkins COPY --chown=spryker:spryker jenkins/jenkins.docker.xml.twig /home/spryker/jenkins.docker.xml.twig