| |
| |
| |
| |
| FROM php:8.3-apache |
|
|
| |
| |
| |
| ENV PORT=7860 |
| ENV APACHE_RUN_USER=www-data |
| ENV APACHE_RUN_GROUP=www-data |
| ENV APACHE_LOG_DIR=/var/log/apache2 |
|
|
| |
| |
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| libpng-dev \ |
| libjpeg-dev \ |
| libfreetype6-dev \ |
| libzip-dev \ |
| libicu-dev \ |
| libxml2-dev \ |
| libcurl4-openssl-dev \ |
| libonig-dev \ |
| sqlite3 \ |
| libsqlite3-dev \ |
| git \ |
| curl \ |
| cron \ |
| unzip \ |
| ca-certificates \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| |
| |
| RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ |
| && docker-php-ext-install \ |
| mbstring \ |
| exif \ |
| bcmath \ |
| intl \ |
| zip \ |
| gd \ |
| mysqli \ |
| pdo \ |
| pdo_mysql \ |
| pdo_sqlite \ |
| && docker-php-ext-enable \ |
| mbstring exif bcmath intl zip gd mysqli pdo_mysql pdo_sqlite |
|
|
| |
| RUN find /usr/local/etc/php/conf.d -type f -name "*docker-php-ext-*" -exec sed -i '/^extension=/d' {} \; |
|
|
| |
| |
| |
| RUN curl -sS https://getcomposer.org/installer | php -- \ |
| --install-dir=/usr/local/bin \ |
| --filename=composer |
|
|
| |
| |
| |
| RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ |
| && apt-get install -y nodejs \ |
| && node -v && npm -v |
|
|
| |
| |
| |
| RUN a2enmod rewrite headers |
|
|
| |
| RUN echo "ServerName localhost" > /etc/apache2/conf-available/servername.conf \ |
| && a2enconf servername |
|
|
| |
| RUN sed -i 's/Listen 80/Listen 7860/' /etc/apache2/ports.conf |
|
|
| RUN printf '<VirtualHost *:7860>\n\ |
| ServerName localhost\n\ |
| DocumentRoot /var/www/html\n\ |
| <Directory /var/www/html>\n\ |
| AllowOverride All\n\ |
| Require all granted\n\ |
| </Directory>\n\ |
| ErrorLog ${APACHE_LOG_DIR}/error.log\n\ |
| CustomLog ${APACHE_LOG_DIR}/access.log combined\n\ |
| </VirtualHost>\n' > /etc/apache2/sites-available/000-default.conf |
|
|
| |
| |
| |
| WORKDIR /var/www/html |
| COPY . . |
|
|
| |
| RUN mkdir -p logs storage \ |
| && chown -R www-data:www-data /var/www/html \ |
| && chmod -R 775 logs storage |
|
|
| |
| |
| |
| RUN if [ -f composer.json ]; then \ |
| composer install --no-dev --optimize-autoloader --no-interaction; \ |
| fi |
|
|
| |
| |
| |
| RUN if [ -f package.json ]; then \ |
| npm install && npm run build; \ |
| fi |
|
|
| |
| |
| |
| RUN printf "display_errors=Off\n\ |
| log_errors=On\n\ |
| error_log=/var/www/html/logs/php_errors.log\n\ |
| memory_limit=256M\n\ |
| upload_max_filesize=10M\n\ |
| post_max_size=10M\n\ |
| max_execution_time=300\n" > /usr/local/etc/php/conf.d/99-softedge.ini |
|
|
| |
| |
| |
| RUN echo "<?php http_response_code(200); echo 'OK';" > /var/www/html/health.php |
|
|
| HEALTHCHECK --interval=60s --timeout=5s \ |
| CMD curl -f http://localhost:7860/health.php || exit 1 |
|
|
| |
| |
| |
| EXPOSE 7860 |
| CMD ["apache2-foreground"] |
|
|