diff --git a/Dockerfile.php8 b/Dockerfile.php8 index 528646f75..570942a46 100755 --- a/Dockerfile.php8 +++ b/Dockerfile.php8 @@ -12,18 +12,26 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM php:8.0-rc as step1 +FROM php:8.0.0alpha3-cli-alpine as step1 ENV TZ=Asia/Tel_Aviv \ - DEBIAN_FRONTEND=noninteractive \ - PHP_REDIS_VERSION=5.3.0 \ + PHP_REDIS_VERSION=5.3.1 \ PHP_SWOOLE_VERSION=4.5.2 \ PHP_XDEBUG_VERSION=sdebug_2_9-beta RUN \ - apt-get update && \ - apt-get install -y --no-install-recommends --no-install-suggests ca-certificates software-properties-common wget git openssl make zip unzip libbrotli-dev libz-dev - + apk add --no-cache --virtual .deps \ + make \ + automake \ + autoconf \ + gcc \ + g++ \ + tar \ + wget \ + git \ + zlib-dev \ + brotli-dev + RUN docker-php-ext-install sockets RUN \ @@ -38,36 +46,19 @@ RUN \ ## Swoole Extension git clone https://github.com/swoole/swoole-src.git && \ cd swoole-src && \ - #git checkout v$PHP_SWOOLE_VERSION && \ + git checkout v$PHP_SWOOLE_VERSION && \ phpize && \ ./configure --enable-sockets --enable-http2 && \ make && make install && \ cd .. - ## XDebug Extension - # git clone https://github.com/swoole/sdebug.git && \ - # cd sdebug && \ - # git checkout $PHP_XDEBUG_VERSION && \ - # phpize && \ - # ./configure --enable-xdebug && \ - # make clean && make && make install - # cd .. && \ - # Meminfo Extension - # git clone https://github.com/BitOne/php-meminfo.git && \ - # cd php-meminfo && \ - # git checkout v1.0.5 && \ - # cd extension/php7 && \ - # phpize && \ - # ./configure --enable-meminfo && \ - # make && make install -FROM php:8.0-rc as final +FROM php:8.0.0alpha3-cli-alpine as final LABEL maintainer="team@appwrite.io" ARG VERSION=dev ENV TZ=Asia/Tel_Aviv \ - DEBIAN_FRONTEND=noninteractive \ _APP_SERVER=swoole \ _APP_ENV=production \ _APP_DOMAIN=localhost \ @@ -92,6 +83,8 @@ ENV TZ=Asia/Tel_Aviv \ _APP_STATSD_PORT=8125 \ _APP_SMTP_HOST=smtp \ _APP_SMTP_PORT=25 \ + _APP_FUNCTIONS_TIMEOUT=900 \ + _APP_FUNCTIONS_CONTAINERS=10 \ _APP_SETUP=self-hosted \ _APP_VERSION=$VERSION #ENV _APP_SMTP_SECURE '' @@ -101,21 +94,31 @@ ENV TZ=Asia/Tel_Aviv \ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN \ - apt-get update && \ - apt-get install -y --no-install-recommends --no-install-suggests webp certbot htop procps \ - libonig-dev libcurl4-gnutls-dev libmagickwand-dev libyaml-dev libbrotli-dev libz-dev - # pecl install imagick yaml && \ - # docker-php-ext-enable imagick yaml - -RUN docker-php-ext-install sockets curl opcache pdo pdo_mysql + apk update \ + && apk add --no-cache --virtual .deps \ + make \ + automake \ + autoconf \ + gcc \ + g++ \ + curl-dev \ + && apk add --no-cache \ + libstdc++ \ + yaml-dev \ + imagemagick \ + imagemagick-dev \ + certbot \ + docker-cli \ + && pecl install imagick yaml \ + && docker-php-ext-enable imagick yaml \ + && docker-php-ext-install sockets opcache pdo_mysql \ + && apk del .deps WORKDIR /usr/src/code COPY --from=step0 /usr/local/src/vendor /usr/src/code/vendor COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20190902/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20190902/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ -# COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ -# COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20190902/meminfo.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ # Add Source Code COPY ./app /usr/src/code/app @@ -139,18 +142,18 @@ RUN mkdir -p /storage/uploads && \ chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug # Executables -RUN chmod +x /usr/local/bin/doctor -RUN chmod +x /usr/local/bin/migrate -RUN chmod +x /usr/local/bin/schedule -RUN chmod +x /usr/local/bin/test -RUN chmod +x /usr/local/bin/worker-audits -RUN chmod +x /usr/local/bin/worker-certificates -RUN chmod +x /usr/local/bin/worker-deletes -RUN chmod +x /usr/local/bin/worker-functions -RUN chmod +x /usr/local/bin/worker-mails -RUN chmod +x /usr/local/bin/worker-tasks -RUN chmod +x /usr/local/bin/worker-usage -RUN chmod +x /usr/local/bin/worker-webhooks +RUN chmod +x /usr/local/bin/doctor && \ + chmod +x /usr/local/bin/migrate && \ + chmod +x /usr/local/bin/schedule && \ + chmod +x /usr/local/bin/test && \ + chmod +x /usr/local/bin/worker-audits && \ + chmod +x /usr/local/bin/worker-certificates && \ + chmod +x /usr/local/bin/worker-deletes && \ + chmod +x /usr/local/bin/worker-functions && \ + chmod +x /usr/local/bin/worker-mails && \ + chmod +x /usr/local/bin/worker-tasks && \ + chmod +x /usr/local/bin/worker-usage && \ + chmod +x /usr/local/bin/worker-webhooks # Letsencrypt Permissions RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/ @@ -158,21 +161,13 @@ RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/ # Enable Extensions RUN echo extension=swoole.so >> /usr/local/etc/php/conf.d/swoole.ini RUN echo extension=redis.so >> /usr/local/etc/php/conf.d/redis.ini -# RUN echo zend_extension=xdebug.so >> /usr/local/etc/php/conf.d/xdebug.ini -# RUN echo extension=meminfo.so >> /usr/local/etc/php/conf.d/meminfo.ini RUN echo "opcache.preload_user=www-data" >> /usr/local/etc/php/conf.d/appwrite.ini RUN echo "opcache.preload=/usr/src/code/app/preload.php" >> /usr/local/etc/php/conf.d/appwrite.ini -RUN echo "opcache.enable_cli = 1" >> /usr/local/etc/php/conf.d/appwrite.ini -# RUN echo "xdebug.profiler_enable = 1" >> /usr/local/etc/php/conf.d/appwrite.ini -# RUN echo "xdebug.profiler_output_dir = /tmp/" >> /usr/local/etc/php/conf.d/appwrite.ini -# RUN echo "xdebug.profiler_enable_trigger = 1" >> /usr/local/etc/php/conf.d/appwrite.ini -# RUN echo "xdebug.trace_format = 1" >> /usr/local/etc/php/conf.d/appwrite.ini +RUN echo "opcache.enable_cli=1" >> /usr/local/etc/php/conf.d/appwrite.ini +RUN echo "opcache.jit_buffer_size=100M" >> /usr/local/etc/php/conf.d/appwrite.ini +RUN echo "opcache.jit=1235" >> /usr/local/etc/php/conf.d/appwrite.ini EXPOSE 80 -#, "-dxdebug.auto_trace=1" -#, "-dxdebug.profiler_enable=1" -#, "-dopcache.preload=opcache.preload=/usr/src/code/app/preload.php" - -CMD [ "php", "app/server.php", "-dopcache.preload=opcache.preload=/usr/src/code/app/preload.php" ] \ No newline at end of file +CMD [ "php", "app/server.php", "-dopcache.preload=opcache.preload=/usr/src/code/app/preload.php" ]