|
@@ -0,0 +1,35 @@
|
|
|
+FROM ubuntu:24.04
|
|
|
+
|
|
|
+ARG DEBIAN_FRONTEND=noninteractive
|
|
|
+
|
|
|
+RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
|
|
|
+RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null
|
|
|
+RUN apt-get update -yqq > /dev/null && \
|
|
|
+ apt-get install -yqq git unzip wget curl build-essential \
|
|
|
+ php8.4-cli php8.4-mbstring php8.4-dev php8.4-xml > /dev/null
|
|
|
+
|
|
|
+# An extension is required!
|
|
|
+# We deal with concurrencies over 1k, which stream_select doesn't support.
|
|
|
+# libuv
|
|
|
+RUN apt-get install -yqq libuv1-dev > /dev/null \
|
|
|
+ && pecl install uv-beta > /dev/null \
|
|
|
+ && echo "extension=uv.so" > /etc/php/8.4/cli/conf.d/uv.ini
|
|
|
+
|
|
|
+# libevent
|
|
|
+# RUN apt-get install -y libevent-dev > /dev/null \
|
|
|
+# && pecl install event-3.1.4 > /dev/null \
|
|
|
+# && echo "extension=event.so" > /etc/php/8.4/cli/conf.d/event.ini
|
|
|
+
|
|
|
+COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
|
|
|
+
|
|
|
+COPY --link deploy/conf/* /etc/php/8.4/cli/conf.d/
|
|
|
+
|
|
|
+WORKDIR /reactphp
|
|
|
+COPY --link . .
|
|
|
+
|
|
|
+RUN composer install --prefer-dist --optimize-autoloader --no-dev --quiet
|
|
|
+
|
|
|
+EXPOSE 8080
|
|
|
+
|
|
|
+ENTRYPOINT ["/usr/bin/php"]
|
|
|
+CMD ["server.php"]
|