# Arch Linux + Apache + PHP image for running novaconium in production. # See /admin/docs/docker for volumes, overriding App/ without a rebuild, # and optional MySQL wiring. FROM archlinux:base RUN pacman -Syu --noconfirm --needed apache php php-apache sqlite \ && pacman -Scc --noconfirm # php-apache on Arch is built against mpm_prefork, not httpd's default # mpm_event — swap MPMs, enable mod_rewrite, point DocumentRoot at # public/, and wire in mod_php. RUN sed -i \ -e 's/^LoadModule mpm_event_module/#LoadModule mpm_event_module/' \ -e 's/^#LoadModule mpm_prefork_module/LoadModule mpm_prefork_module/' \ -e '/^#LoadModule rewrite_module/s/^#//' \ -e 's#DocumentRoot "/srv/http"#DocumentRoot "/var/www/html/public"#' \ -e 's###' \ -e 's/^AllowOverride None/AllowOverride All/' \ /etc/httpd/conf/httpd.conf \ && printf '\nLoadModule php_module modules/libphp.so\nAddHandler php-script .php\nDirectoryIndex index.php index.html\nServerName localhost\n' \ >> /etc/httpd/conf/httpd.conf \ && sed -i \ -e 's/^;extension=pdo_sqlite/extension=pdo_sqlite/' \ -e 's/^;extension=pdo_mysql/extension=pdo_mysql/' \ /etc/php/php.ini WORKDIR /var/www/html COPY novaconium/ ./novaconium/ COPY public/ ./public/ COPY App/ ./App/ # Runtime-writable paths not covered by named volumes in docker-compose.yml. RUN mkdir -p public/cache data images \ && touch novaconium/contact-log.txt \ && chown -R http:http public/cache data images App novaconium/contact-log.txt EXPOSE 80 CMD ["httpd", "-D", "FOREGROUND"]