diff --git a/docker/app/Dockerfile b/docker/app/Dockerfile index 3bae4d3..759907b 100644 --- a/docker/app/Dockerfile +++ b/docker/app/Dockerfile @@ -1,41 +1,40 @@ -FROM php:8.3-cli - -RUN apt-get update && apt-get install -y --no-install-recommends \ - nano \ - bash \ - libzip-dev \ - unzip \ - libonig-dev - -# Install PHP Extensions -ENV CFLAGS="$CFLAGS -D_GNU_SOURCE" -RUN docker-php-ext-install zip \ - && docker-php-ext-install opcache sockets mbstring \ - && docker-php-ext-enable opcache sockets mbstring - -# Protobuf and GRPC -ENV PROTOBUF_VERSION "3.25.1" -RUN pecl channel-update pecl.php.net -RUN pecl install protobuf-${PROTOBUF_VERSION} grpc \ - && docker-php-ext-enable protobuf grpc - -# Install Temporal CLI -COPY --from=temporalio/admin-tools /usr/local/bin/tctl /usr/local/bin/tctl +FROM php:8.3-cli-alpine as build + +# set memory limit +# RUN echo 'memory_limit = 512M' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini; -# Install Composer -COPY --from=composer /usr/bin/composer /usr/local/bin/composer +# copy binaries +COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ +COPY --from=temporalio/admin-tools /usr/local/bin/tctl /usr/local/bin/tctl +COPY --from=ghcr.io/roadrunner-server/roadrunner:latest /usr/bin/rr /usr/local/bin/rr +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer -# Wait for Temporal service to star up +# copy and chmod wait script COPY wait-for-temporal.sh /usr/local/bin RUN chmod +x /usr/local/bin/wait-for-temporal.sh -# Copy application codebase +# install deps and php extensions +RUN apk --no-cache add git && \ + install-php-extensions \ + zip \ + mbstring \ + opcache \ + sockets \ + protobuf \ + grpc + +FROM build AS vendor + WORKDIR /var/app -COPY app/ /var/app +COPY app/composer.json . + +# build `vendor` with all deps +RUN composer install --prefer-dist --no-ansi --no-dev --no-autoloader --no-scripts -RUN composer install +FROM vendor as app + +WORKDIR /var/app +COPY app . -# Setup RoadRunner -RUN vendor/bin/rr get --no-interaction \ - && mv rr /usr/local/bin/rr \ - && chmod +x /usr/local/bin/rr +# build autoload +RUN composer dump-autoload