diff --git a/src/lib/buildPacks/common.ts b/src/lib/buildPacks/common.ts index 62b7840ce..65f4d6903 100644 --- a/src/lib/buildPacks/common.ts +++ b/src/lib/buildPacks/common.ts @@ -124,18 +124,7 @@ export const setDefaultConfiguration = async (data) => { export async function copyBaseConfigurationFiles(buildPack, workdir, buildId, applicationId) { try { - // TODO: Write full .dockerignore for all deployments!! if (buildPack === 'php') { - await fs.writeFile( - `${workdir}/.htaccess`, - ` - RewriteEngine On - RewriteBase / - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.+)$ index.php [QSA,L] - ` - ); await fs.writeFile(`${workdir}/entrypoint.sh`, `chown -R 1000 /app`); await saveBuildLog({ line: 'Copied default configuration file for PHP.', diff --git a/src/lib/buildPacks/php.ts b/src/lib/buildPacks/php.ts index abec33b3d..14ee5d0cb 100644 --- a/src/lib/buildPacks/php.ts +++ b/src/lib/buildPacks/php.ts @@ -1,23 +1,33 @@ import { buildImage } from '$lib/docker'; import { promises as fs } from 'fs'; -const createDockerfile = async (data, image): Promise => { +const createDockerfile = async (data, image, htaccessFound): Promise => { const { workdir, baseDirectory } = data; const Dockerfile: Array = []; Dockerfile.push(`FROM ${image}`); Dockerfile.push(`LABEL coolify.image=true`); Dockerfile.push('WORKDIR /app'); Dockerfile.push(`COPY .${baseDirectory || ''} /app`); - Dockerfile.push(`COPY /.htaccess .`); + if (htaccessFound) { + Dockerfile.push(`COPY .${baseDirectory || ''}/.htaccess ./`); + } Dockerfile.push(`COPY /entrypoint.sh /opt/docker/provision/entrypoint.d/30-entrypoint.sh`); Dockerfile.push(`EXPOSE 80`); await fs.writeFile(`${workdir}/Dockerfile`, Dockerfile.join('\n')); }; export default async function (data) { + const { workdir, baseDirectory } = data; try { - const image = 'webdevops/php-nginx'; - await createDockerfile(data, image); + let htaccessFound = false; + try { + const d = await fs.readFile(`${workdir}${baseDirectory || ''}/.htaccess`); + htaccessFound = true; + } catch (e) { + // + } + const image = htaccessFound ? 'webdevops/php-apache' : 'webdevops/php-nginx'; + await createDockerfile(data, image, htaccessFound); await buildImage(data); } catch (error) { throw error;