|
| 1 | +FROM php:8.2-apache |
| 2 | + |
| 3 | +RUN apt-get update && apt-get install -y libpq-dev libpng-dev libjpeg-dev libldap-dev unzip \ |
| 4 | + libcurl4-openssl-dev libxslt-dev git libz-dev libzip-dev libmemcached-dev \ |
| 5 | + postgresql-client jq msmtp-mta ffmpeg |
| 6 | + |
| 7 | +RUN docker-php-ext-install pgsql pdo_pgsql gd ldap curl xsl zip |
| 8 | + |
| 9 | +RUN pecl install memcached && \ |
| 10 | + echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini |
| 11 | + |
| 12 | +RUN pecl install xdebug-3.3.1 && docker-php-ext-enable xdebug \ |
| 13 | + && echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so"' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ |
| 14 | + && echo 'xdebug.client_port=9003' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ |
| 15 | + && echo 'xdebug.mode=develop,debug' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ |
| 16 | + && echo 'xdebug.start_with_request=yes' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ |
| 17 | + && echo 'xdebug.client_host=localhost' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini |
| 18 | + |
| 19 | +RUN echo 'error_reporting=E_ALL' >> /usr/local/etc/php/conf.d/error-reporting.ini |
| 20 | + |
| 21 | +RUN echo "memory_limit=512M" >> /usr/local/etc/php/conf.d/uploads.ini |
| 22 | +RUN echo "upload_max_filesize=512M" >> /usr/local/etc/php/conf.d/uploads.ini |
| 23 | +RUN echo "post_max_size=512M" >> /usr/local/etc/php/conf.d/uploads.ini |
| 24 | + |
| 25 | +RUN echo sendmail_path = "/usr/bin/msmtp -t --host ury.york.ac.uk --port 587 --from [email protected]" > /usr/local/etc/php/conf.d/sendmail.ini |
| 26 | + |
| 27 | +# Self-signed certificate |
| 28 | +RUN openssl req -nodes -new -subj "/C=GB/ST=North Yorkshire/L=York/O=University Radio York/OU=Localhost/CN=localhost" > myradio.csr && \ |
| 29 | + openssl rsa -in privkey.pem -out myradio.key && \ |
| 30 | + openssl x509 -in myradio.csr -out myradio.crt -req -signkey myradio.key -days 999 && \ |
| 31 | + cp myradio.crt /etc/apache2/myradio.crt && \ |
| 32 | + cp myradio.key /etc/apache2/myradio.key |
| 33 | + |
| 34 | +RUN a2enmod rewrite ssl |
| 35 | + |
| 36 | +COPY sample_configs/apache.conf /etc/apache2/sites-available/myradio.conf |
| 37 | +RUN a2dissite 000-default && a2ensite myradio && \ |
| 38 | + service apache2 restart && apachectl -S |
| 39 | + |
| 40 | +COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer |
| 41 | + |
| 42 | +RUN mkdir -p /var/www/myradio && chown -R www-data:www-data /var/www/myradio && \ |
| 43 | + mkdir -p /var/log/myradio && chown -R www-data:www-data /var/log/myradio |
| 44 | + |
| 45 | +WORKDIR /var/www/myradio |
| 46 | +COPY composer.* /var/www/myradio/ |
| 47 | +RUN COMPOSER_VENDOR_DIR=/var/www/myradio/src/vendor composer install |
| 48 | + |
| 49 | +COPY schema schema |
| 50 | +COPY src src |
| 51 | + |
| 52 | +COPY sample_configs/docker-config.php src/MyRadio_Config.local.php |
| 53 | +RUN chown www-data:www-data /var/www/myradio/src/MyRadio_Config.local.php && chmod 664 /var/www/myradio/src/MyRadio_Config.local.php |
| 54 | + |
| 55 | +CMD ["apache2-foreground"] |
0 commit comments