kenken999's picture
Fix: Add app.php as DirectoryIndex and enable mod_rewrite routing
7bcd13e verified
Raw
History Blame Contribute Delete
2.46 kB
FROM debian:bullseye-slim
# Expose HuggingFace port
EXPOSE 7860
# Install Apache, PHP 7.4 and extensions
RUN apt-get update && apt-get install -y \
apache2 \
php7.4 \
php7.4-cli \
php7.4-mysql \
php7.4-pgsql \
php7.4-gd \
php7.4-xml \
php7.4-mbstring \
php7.4-curl \
php7.4-zip \
php7.4-soap \
libapache2-mod-php7.4 \
wget \
curl \
git \
&& a2enmod rewrite php7.4 \
&& rm -rf /var/lib/apt/lists/*
# Configure Apache for port 7860
RUN sed -i 's/Listen 80/Listen 7860/g' /etc/apache2/ports.conf \
&& sed -i 's/:80/:7860/g' /etc/apache2/sites-available/000-default.conf
# Set ServerName
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
# Copy ProcessMaker files
WORKDIR /var/www/html
COPY processmaker-files/ /var/www/html/
# Set DocumentRoot to workflow/public_html
RUN sed -i 's|DocumentRoot /var/www/html|DocumentRoot /var/www/html/workflow/public_html|' /etc/apache2/sites-available/000-default.conf
# Configure Apache to use app.php as index and enable mod_rewrite
RUN sed -i 's|<Directory /var/www/>|<Directory /var/www/html/workflow/public_html/>\n\tOptions Indexes FollowSymLinks\n\tAllowOverride All\n\tDirectoryIndex app.php index.html index.php\n\tRequire all granted\n</Directory>\n\n<Directory /var/www/>|' /etc/apache2/apache2.conf
# Create .htaccess for URL rewriting
RUN echo '<IfModule mod_rewrite.c>' > /var/www/html/workflow/public_html/.htaccess.rewrite && \
echo ' RewriteEngine On' >> /var/www/html/workflow/public_html/.htaccess.rewrite && \
echo ' RewriteCond %{REQUEST_FILENAME} !-f' >> /var/www/html/workflow/public_html/.htaccess.rewrite && \
echo ' RewriteCond %{REQUEST_FILENAME} !-d' >> /var/www/html/workflow/public_html/.htaccess.rewrite && \
echo ' RewriteRule ^(.*)$ app.php [QSA,L]' >> /var/www/html/workflow/public_html/.htaccess.rewrite && \
echo '</IfModule>' >> /var/www/html/workflow/public_html/.htaccess.rewrite && \
cat /var/www/html/workflow/public_html/.htaccess.rewrite >> /var/www/html/workflow/public_html/.htaccess
# Set permissions (like Laravel TODO)
RUN chmod -R 777 /var/www/html
# Environment variables for database
ENV DB_HOST=${DB_HOST:-localhost}
ENV DB_PORT=${DB_PORT:-5432}
ENV DB_NAME=${DB_NAME:-postgres}
ENV DB_USER=${DB_USER:-postgres}
ENV DB_PASS=${DB_PASS:-}
# Copy entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh"]