75 lines
2.1 KiB
Docker
75 lines
2.1 KiB
Docker
|
|
# Simple working PHP setup using Ubuntu
|
||
|
|
FROM ubuntu:20.04
|
||
|
|
|
||
|
|
# Prevent interactive prompts during package installation
|
||
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
|
ENV TZ=Australia/Sydney
|
||
|
|
|
||
|
|
# Install Apache, PHP and required extensions
|
||
|
|
RUN apt-get update && apt-get install -y \
|
||
|
|
apache2 \
|
||
|
|
libapache2-mod-php7.4 \
|
||
|
|
php7.4 \
|
||
|
|
php7.4-mysql \
|
||
|
|
php7.4-gd \
|
||
|
|
php7.4-curl \
|
||
|
|
php7.4-mbstring \
|
||
|
|
php7.4-xml \
|
||
|
|
php7.4-zip \
|
||
|
|
php7.4-imap \
|
||
|
|
php7.4-intl \
|
||
|
|
php7.4-bcmath \
|
||
|
|
curl \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
# Enable Apache modules
|
||
|
|
RUN a2enmod rewrite headers php7.4
|
||
|
|
|
||
|
|
# Configure PHP for CakePHP
|
||
|
|
RUN { \
|
||
|
|
echo 'error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING'; \
|
||
|
|
echo 'display_errors = On'; \
|
||
|
|
echo 'display_startup_errors = On'; \
|
||
|
|
echo 'log_errors = On'; \
|
||
|
|
echo 'max_execution_time = 300'; \
|
||
|
|
echo 'memory_limit = 256M'; \
|
||
|
|
echo 'post_max_size = 50M'; \
|
||
|
|
echo 'upload_max_filesize = 50M'; \
|
||
|
|
} > /etc/php/7.4/apache2/conf.d/99-cakephp.ini
|
||
|
|
|
||
|
|
# Set up Apache virtual host
|
||
|
|
RUN echo '<VirtualHost *:80>\n\
|
||
|
|
ServerName localhost\n\
|
||
|
|
DocumentRoot /var/www/cmc-sales/app/webroot\n\
|
||
|
|
<Directory /var/www/cmc-sales/app/webroot>\n\
|
||
|
|
Options FollowSymLinks\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>' > /etc/apache2/sites-available/000-default.conf
|
||
|
|
|
||
|
|
# Create app directory structure
|
||
|
|
RUN mkdir -p /var/www/cmc-sales/app/tmp/{cache,logs,sessions} \
|
||
|
|
&& mkdir -p /var/www/cmc-sales/app/webroot/{pdf,attachments_files}
|
||
|
|
|
||
|
|
# Set permissions
|
||
|
|
RUN chown -R www-data:www-data /var/www/cmc-sales \
|
||
|
|
&& chmod -R 777 /var/www/cmc-sales/app/tmp
|
||
|
|
|
||
|
|
# Copy ripmime if it exists
|
||
|
|
# COPY conf/ripmime* /usr/local/bin/ || true
|
||
|
|
# RUN chmod +x /usr/local/bin/ripmime* 2>/dev/null || true
|
||
|
|
|
||
|
|
# Set working directory
|
||
|
|
WORKDIR /var/www/cmc-sales
|
||
|
|
|
||
|
|
# Copy application (will be overridden by volume mount)
|
||
|
|
COPY app/ /var/www/cmc-sales/app/
|
||
|
|
|
||
|
|
# Expose port 80
|
||
|
|
EXPOSE 80
|
||
|
|
|
||
|
|
# Start Apache in foreground
|
||
|
|
CMD ["apache2ctl", "-D", "FOREGROUND"]
|