44 lines
1.2 KiB
Docker
44 lines
1.2 KiB
Docker
# Dockerfile for DSP PHP application with R support
|
|
FROM php:8.2-apache
|
|
|
|
# Install system dependencies and PHP extensions
|
|
RUN apt-get update && apt-get install -y \
|
|
libpng-dev \
|
|
libonig-dev \
|
|
libzip-dev \
|
|
zip \
|
|
unzip \
|
|
git \
|
|
default-mysql-client \
|
|
r-base \
|
|
&& docker-php-ext-install pdo_mysql \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install required R packages
|
|
RUN Rscript -e "install.packages('jsonlite', repos='https://cloud.r-project.org')"
|
|
|
|
# Enable Apache modules commonly used by PHP apps
|
|
RUN a2enmod rewrite
|
|
|
|
# Set working directory
|
|
WORKDIR /var/www/html
|
|
|
|
# Copy project files into the container (can be overridden by bind mount in docker-compose)
|
|
COPY . /var/www/html
|
|
|
|
# Ensure upload directories are writable by the web server
|
|
RUN chown -R www-data:www-data /var/www/html/uploads
|
|
|
|
# Increase default PHP upload limits
|
|
COPY docker/custom.ini /usr/local/etc/php/conf.d/uploads.ini
|
|
|
|
# Copy entrypoint script
|
|
COPY docker/app-entrypoint.sh /usr/local/bin/app-entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/app-entrypoint.sh
|
|
|
|
# Expose Apache port
|
|
EXPOSE 80
|
|
|
|
ENTRYPOINT ["app-entrypoint.sh"]
|