diff --git a/Dockerfile b/Dockerfile index 9b394d5b1..9015d2ae4 100755 --- a/Dockerfile +++ b/Dockerfile @@ -12,13 +12,15 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM php:7.4-cli-alpine as step1 +FROM php:8.0.0RC2-cli-alpine as step1 ENV TZ=Asia/Tel_Aviv \ - PHP_REDIS_VERSION=5.3.0 \ - PHP_SWOOLE_VERSION=4.5.6 \ - PHP_XDEBUG_VERSION=sdebug_2_9-beta - + PHP_REDIS_VERSION=5.3.2 \ + PHP_SWOOLE_VERSION=v4.5.6 \ + PHP_IMAGICK_VERSION=master \ + PHP_YAML_VERSION=2.2.0b2 \ + PHP_MAXMINDDB_VERSION=v1.8.0 + RUN \ apk add --no-cache --virtual .deps \ make \ @@ -26,20 +28,21 @@ RUN \ autoconf \ gcc \ g++ \ - tar \ - wget \ git \ zlib-dev \ brotli-dev \ + yaml-dev \ + imagemagick \ + imagemagick-dev \ libmaxminddb-dev RUN docker-php-ext-install sockets RUN \ # Redis Extension - wget -q https://github.com/phpredis/phpredis/archive/$PHP_REDIS_VERSION.tar.gz && \ - tar -xf $PHP_REDIS_VERSION.tar.gz && \ - cd phpredis-$PHP_REDIS_VERSION && \ + git clone https://github.com/phpredis/phpredis.git && \ + cd phpredis && \ + git checkout $PHP_REDIS_VERSION && \ phpize && \ ./configure && \ make && make install && \ @@ -47,20 +50,38 @@ RUN \ ## Swoole Extension git clone https://github.com/swoole/swoole-src.git && \ cd swoole-src && \ - git checkout v$PHP_SWOOLE_VERSION && \ + git checkout $PHP_SWOOLE_VERSION && \ phpize && \ - ./configure --enable-sockets --enable-http2 && \ + ./configure --enable-http2 && \ + make && make install && \ + cd .. && \ + ## Imagick Extension + git clone https://github.com/Imagick/imagick && \ + cd imagick && \ + git checkout $PHP_IMAGICK_VERSION && \ + phpize && \ + ./configure && \ + make && make install && \ + cd .. && \ + ## YAML Extension + git clone https://github.com/php/pecl-file_formats-yaml && \ + cd pecl-file_formats-yaml && \ + git checkout $PHP_YAML_VERSION && \ + phpize && \ + ./configure && \ make && make install && \ cd .. && \ ## Maxminddb extension git clone https://github.com/maxmind/MaxMind-DB-Reader-php.git && \ - cd MaxMind-DB-Reader-php/ext && \ + cd MaxMind-DB-Reader-php && \ + git checkout $PHP_MAXMINDDB_VERSION && \ + cd ext && \ phpize && \ ./configure && \ make && make install && \ cd ../.. -FROM php:7.4-cli-alpine as final +FROM php:8.0.0RC2-cli-alpine as final LABEL maintainer="team@appwrite.io" @@ -112,6 +133,9 @@ RUN \ curl-dev \ && apk add --no-cache \ libstdc++ \ + certbot \ + docker-cli \ + brotli-dev \ yaml-dev \ imagemagick \ imagemagick-dev \ @@ -120,8 +144,6 @@ RUN \ docker-compose \ libmaxminddb \ libmaxminddb-dev \ - && pecl install imagick yaml \ - && docker-php-ext-enable imagick yaml \ && docker-php-ext-install sockets opcache pdo_mysql \ && apk del .deps \ && rm -rf /var/cache/apk/* @@ -129,9 +151,11 @@ RUN \ 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/maxminddb.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ +COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ +COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ +COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/imagick.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ +COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/yaml.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ +COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/maxminddb.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ # Add Source Code COPY ./app /usr/src/code/app @@ -177,12 +201,16 @@ 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 extension=imagick.so >> /usr/local/etc/php/conf.d/imagick.ini +RUN echo extension=yaml.so >> /usr/local/etc/php/conf.d/yaml.ini RUN echo extension=maxminddb.so >> /usr/local/etc/php/conf.d/maxminddb.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 "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 -CMD [ "php", "app/http.php", "-dopcache.preload=opcache.preload=/usr/src/code/app/preload.php" ] +CMD [ "php", "app/http.php", "-dopcache.preload=opcache.preload=/usr/src/code/app/preload.php" ] \ No newline at end of file