spiral.dockerfile 885 B

1234567891011121314151617181920212223242526272829
  1. FROM php:8.3-cli
  2. RUN apt-get update -yqq > /dev/null && apt-get install -yqq git unzip > /dev/null
  3. COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
  4. RUN docker-php-ext-install \
  5. opcache \
  6. pdo_mysql \
  7. sockets > /dev/null
  8. # RoadRunner >= 2024.x.x requires protobuf extensions to be installed
  9. ARG PROTOBUF_VERSION="4.26.1"
  10. RUN pecl channel-update pecl.php.net
  11. RUN MAKEFLAGS="-j $(nproc)" pecl install protobuf-${PROTOBUF_VERSION} > /dev/null
  12. WORKDIR /spiral
  13. COPY --link . .
  14. # composer and opcache settings
  15. COPY --link php/php.ini /usr/local/etc/php/
  16. RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
  17. # pre-configure
  18. RUN ./vendor/bin/rr get-binary > /dev/null 2>&1
  19. RUN php app.php configure > /dev/null 2>&1
  20. EXPOSE 8080
  21. CMD php app.php up > /dev/null 2>&1 && ./rr serve -o "http.pool.num_workers = 64"