|
| 1 | +FROM php:8.5-apache |
| 2 | + |
| 3 | +ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ |
| 4 | + |
| 5 | +RUN chmod +x /usr/local/bin/install-php-extensions |
| 6 | + |
| 7 | +RUN install-php-extensions \ |
| 8 | + apcu \ |
| 9 | + bcmath \ |
| 10 | + excimer \ |
| 11 | + exif \ |
| 12 | + gd \ |
| 13 | + gmp \ |
| 14 | + intl \ |
| 15 | + ldap \ |
| 16 | + memcached \ |
| 17 | + oci8 \ |
| 18 | + opcache \ |
| 19 | + pcntl \ |
| 20 | + pdo_mysql \ |
| 21 | + pdo_pgsql \ |
| 22 | + redis \ |
| 23 | + smbclient \ |
| 24 | + sysvsem \ |
| 25 | + xdebug \ |
| 26 | + zip \ |
| 27 | + blackfire \ |
| 28 | + @composer |
| 29 | + |
| 30 | +# dev tools separate install so we quickly change without rebuilding all php extensions |
| 31 | +RUN apt update && apt-get install -y --no-install-recommends \ |
| 32 | + git \ |
| 33 | + curl \ |
| 34 | + vim-tiny \ |
| 35 | + nano \ |
| 36 | + sudo \ |
| 37 | + cron \ |
| 38 | + smbclient \ |
| 39 | + iproute2 \ |
| 40 | + lnav \ |
| 41 | + wget \ |
| 42 | + iputils-ping \ |
| 43 | + gnupg2 \ |
| 44 | + jq \ |
| 45 | + ripgrep \ |
| 46 | + rsync \ |
| 47 | + && rm -rf /var/lib/apt/lists/* |
| 48 | + |
| 49 | +# Install PHPUnit |
| 50 | +RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \ |
| 51 | + && chmod +x /usr/local/bin/phpunit11 \ |
| 52 | + && wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \ |
| 53 | + && chmod +x /usr/local/bin/phpunit12 \ |
| 54 | + && ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit |
| 55 | + |
| 56 | +# Install NVM |
| 57 | +RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \ |
| 58 | + && export NVM_DIR="/root/.nvm" \ |
| 59 | + && . "$NVM_DIR/nvm.sh" \ |
| 60 | + && nvm install node \ |
| 61 | + && nvm alias default node \ |
| 62 | + && nvm cache clear |
| 63 | + |
| 64 | +RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json |
| 65 | + |
| 66 | +RUN { \ |
| 67 | + echo '[global]'; \ |
| 68 | + echo 'client min protocol = SMB2'; \ |
| 69 | + echo 'client max protocol = SMB3'; \ |
| 70 | + echo 'hide dot files = no'; \ |
| 71 | +} > /etc/samba/smb.conf |
| 72 | + |
| 73 | +RUN mkdir --parent /var/log/cron |
| 74 | +ADD configs/cron.conf /etc/nc-cron.conf |
| 75 | +RUN crontab /etc/nc-cron.conf |
| 76 | + |
| 77 | +ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini |
| 78 | +ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini |
| 79 | + |
| 80 | +# Setup blackfire probe |
| 81 | +RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled |
| 82 | + |
| 83 | +RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf |
| 84 | + |
| 85 | +# mod_rewrite |
| 86 | +RUN a2enmod rewrite headers |
| 87 | + |
| 88 | +# increase limit request body |
| 89 | +RUN echo "LimitRequestBody 0" > /etc/apache2/conf-available/limit-request-body.conf && a2enconf limit-request-body |
| 90 | + |
| 91 | +VOLUME /var/www/html |
| 92 | +VOLUME /var/www/html/apps-writable |
| 93 | +VOLUME /var/www/html/config |
| 94 | +VOLUME /var/www/html/data |
| 95 | + |
| 96 | +ENV SQL=sqlite |
| 97 | +ENV NEXTCLOUD_AUTOINSTALL=YES |
| 98 | +ENV WITH_REDIS=NO |
| 99 | + |
| 100 | +ENV WEBROOT=/var/www/html |
| 101 | +WORKDIR /var/www/html |
| 102 | + |
| 103 | +ENTRYPOINT ["/usr/local/bin/bootstrap.sh"] |
| 104 | +CMD ["apache2-foreground"] |
| 105 | + |
| 106 | +ADD data/installing.html /root/installing.html |
| 107 | +ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/ |
| 108 | +ADD bin/bootstrap.sh bin/occ /usr/local/bin/ |
0 commit comments