cmc-sales/Dockerfile.ubuntu-php

79 lines
2.2 KiB
Docker
Raw Normal View History

2025-08-07 18:22:06 -07:00
# 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
2025-08-07 20:31:27 -07:00
# Copy CakePHP core and application
COPY cake/ /var/www/cmc-sales/cake/
2025-08-07 18:22:06 -07:00
COPY app/ /var/www/cmc-sales/app/
2025-08-07 20:31:27 -07:00
COPY vendors/ /var/www/cmc-sales/vendors/
COPY index.php /var/www/cmc-sales/
COPY *.sh /var/www/cmc-sales/
2025-08-07 18:22:06 -07:00
# Expose port 80
EXPOSE 80
# Start Apache in foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]