Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 32 additions & 33 deletions docker/app/Dockerfile
Original file line number Diff line number Diff line change
@@ -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