FROM php:8.5-fpm-alpine RUN apk add --no-cache \ apache2 \ apache2-proxy \ curl \ libcurl \ shadow \ sqlite-libs && \ apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ curl-dev \ sqlite-dev && \ install_php_extension() { \ extension="$1"; \ if php -m | grep -Eiq "^${extension}$"; then \ echo "${extension} already enabled"; \ else \ docker-php-ext-install "${extension}"; \ fi; \ } && \ install_php_extension curl && \ install_php_extension pdo_sqlite && \ php -m | grep -Eiq '^curl$' && \ php -m | grep -Eiq '^pdo_sqlite$' && \ php -m | grep -Eiq 'opcache' && \ apk del .build-deps RUN set -eu; \ enable_module() { \ name="$1"; \ path="$2"; \ if grep -q "^#LoadModule ${name} " /etc/apache2/httpd.conf; then \ sed -i "s|^#LoadModule ${name} .*|LoadModule ${name} ${path}|" /etc/apache2/httpd.conf; \ elif ! grep -q "^LoadModule ${name} " /etc/apache2/httpd.conf; then \ printf "LoadModule %s %s\n" "$name" "$path" >> /etc/apache2/httpd.conf; \ fi; \ }; \ test -s /usr/lib/apache2/mod_rewrite.so; \ test -s /usr/lib/apache2/mod_headers.so; \ test -s /usr/lib/apache2/mod_proxy.so; \ test -s /usr/lib/apache2/mod_proxy_fcgi.so; \ enable_module rewrite_module /usr/lib/apache2/mod_rewrite.so; \ enable_module headers_module /usr/lib/apache2/mod_headers.so; \ sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/' /etc/apache2/httpd.conf; \ sed -i 's/^Listen 80$/Listen 8080/' /etc/apache2/httpd.conf; \ sed -i 's#^ErrorLog .*#ErrorLog /proc/self/fd/2#' /etc/apache2/httpd.conf; \ sed -i 's#^CustomLog .*#CustomLog /proc/self/fd/1 combined#' /etc/apache2/httpd.conf; \ if grep -q '^PidFile ' /etc/apache2/httpd.conf; then \ sed -i 's#^PidFile .*#PidFile /tmp/httpd.pid#' /etc/apache2/httpd.conf; \ else \ printf '\nPidFile /tmp/httpd.pid\n' >> /etc/apache2/httpd.conf; \ fi; \ printf '\nServerName localhost\n' >> /etc/apache2/httpd.conf; \ sed -i 's#^listen = .*#listen = 127.0.0.1:9000#' /usr/local/etc/php-fpm.d/www.conf; \ sed -i 's#^;clear_env = no#clear_env = no#' /usr/local/etc/php-fpm.d/www.conf; \ sed -i 's#^pm.max_children = .*#pm.max_children = 6#' /usr/local/etc/php-fpm.d/www.conf; \ sed -i 's#^pm.start_servers = .*#pm.start_servers = 2#' /usr/local/etc/php-fpm.d/www.conf; \ sed -i 's#^pm.min_spare_servers = .*#pm.min_spare_servers = 1#' /usr/local/etc/php-fpm.d/www.conf; \ sed -i 's#^pm.max_spare_servers = .*#pm.max_spare_servers = 3#' /usr/local/etc/php-fpm.d/www.conf COPY httpd-php-fpm.conf /etc/apache2/conf.d/php-fpm.conf COPY opcache.ini /usr/local/etc/php/conf.d/zz-opcache.ini COPY php-fpm-runtime.conf /usr/local/etc/php-fpm.d/zz-runtime.conf COPY render-static-pages.sh /usr/local/bin/render-static-pages COPY start-website.sh /usr/local/bin/start-website COPY . /var/www/localhost/htdocs/ RUN rm -f /var/www/localhost/htdocs/index.html && \ usermod -u 1000 apache && \ groupmod -g 1000 apache && \ mkdir -p \ /run/apache2 \ /var/log/apache2 \ /var/www/localhost/htdocs/db \ /tmp/website-lang && \ chmod 0755 /usr/local/bin/render-static-pages && \ /usr/local/bin/render-static-pages /var/www/localhost/htdocs && \ chown -R apache:apache \ /run/apache2 \ /var/log/apache2 \ /var/www/localhost/htdocs/db \ /var/www/localhost/htdocs/static-pages \ /tmp/website-lang && \ chmod 0755 /usr/local/bin/start-website ENV WEBSITE_LANG_WRITE_DIR=/var/www/localhost/htdocs/db/lang ENV OLLAMA_HOST=http://192.168.100.68:11434 ENV OLLAMA_MODEL=website-translator USER apache EXPOSE 8080 CMD ["start-website"]