|
|
|
|
|
|
|
|
|
|
|
|
|
|
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"] |
|
|
|