FROM composer:2 AS vendor WORKDIR /app COPY composer.json composer.lock* ./ RUN composer config audit.block-insecure false \ && composer install --no-dev --no-scripts --optimize-autoloader --no-interaction --ignore-platform-reqs \ && test -f vendor/autoload.php FROM php:8.3-fpm-bookworm RUN apt-get update \ && apt-get install -y --no-install-recommends \ curl gnupg2 apt-transport-https unixodbc-dev nginx supervisor libldap2-dev \ libpq-dev default-libmysqlclient-dev \ && curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" \ > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y msodbcsql18 \ && pecl install sqlsrv pdo_sqlsrv \ && docker-php-ext-enable sqlsrv pdo_sqlsrv \ && docker-php-ext-install ldap pdo_pgsql pdo_mysql \ && apt-get clean && rm -rf /var/lib/apt/lists/* WORKDIR /var/www/html COPY --from=vendor /app/vendor ./vendor COPY . . RUN mkdir -p storage/framework/{sessions,views,cache} storage/logs bootstrap/cache \ && chown -R www-data:www-data storage bootstrap/cache \ && chmod -R 775 storage bootstrap/cache COPY docker/nginx.conf /etc/nginx/nginx.conf COPY docker/default.conf /etc/nginx/conf.d/default.conf COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY docker/entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh EXPOSE 80 HEALTHCHECK --interval=60s --timeout=10s --start-period=90s --retries=3 \ CMD curl -sf http://127.0.0.1/up || exit 1 ENTRYPOINT ["/entrypoint.sh"]