-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
92 lines (70 loc) · 2.59 KB
/
Dockerfile
File metadata and controls
92 lines (70 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
FROM composer:2.8 AS composer
WORKDIR /usr/local/src/
COPY composer.lock /usr/local/src/
COPY composer.json /usr/local/src/
RUN composer install \
--ignore-platform-reqs \
--optimize-autoloader \
--no-plugins \
--no-scripts \
--prefer-dist
FROM php:8.4-zts-bookworm AS compile
ENV PHP_SWOOLE_VERSION="v6.1.3"
ENV PHP_PARALLEL_VERSION="v1.2.8"
ENV PHP_EV_VERSION="1.2.2"
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -y \
make \
automake \
autoconf \
gcc \
g++ \
git \
libev-dev \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install \
sockets
## ext-swoole
FROM compile AS swoole
RUN \
git clone --depth 1 --branch $PHP_SWOOLE_VERSION https://github.com/swoole/swoole-src.git && \
cd swoole-src && \
phpize && \
./configure --enable-swoole-thread --enable-sockets && \
make && make install
## ext-parallel
FROM compile AS parallel
RUN git clone --depth 1 --branch $PHP_PARALLEL_VERSION https://github.com/krakjoe/parallel.git && \
cd parallel && \
phpize && \
./configure && \
make && \
make install && \
echo "extension=parallel.so" > /usr/local/etc/php/conf.d/parallel.ini
## ext-ev
FROM compile AS ev
RUN git clone --depth 1 --branch $PHP_EV_VERSION https://bitbucket.org/osmanov/pecl-ev.git ev && \
cd ev && \
phpize && \
./configure && \
make && \
make install && \
echo "extension=ev.so" > /usr/local/etc/php/conf.d/ev.ini
FROM compile AS final
LABEL maintainer="team@appwrite.io"
ARG DEBUG=false
ENV DEBUG=$DEBUG
WORKDIR /usr/src/code
RUN echo extension=swoole.so >> /usr/local/etc/php/conf.d/swoole.ini
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
RUN echo "opcache.enable_cli=1" >> $PHP_INI_DIR/php.ini
RUN echo "memory_limit=512M" >> $PHP_INI_DIR/php.ini
COPY --from=composer /usr/bin/composer /usr/bin/composer
COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor
COPY --from=swoole /usr/local/lib/php/extensions/no-debug-zts-20240924/swoole.so /usr/local/lib/php/extensions/no-debug-zts-20240924/
COPY --from=parallel /usr/local/lib/php/extensions/no-debug-zts-20240924/parallel.so /usr/local/lib/php/extensions/no-debug-zts-20240924/
COPY --from=parallel /usr/local/etc/php/conf.d/parallel.ini /usr/local/etc/php/conf.d/parallel.ini
COPY --from=ev /usr/local/lib/php/extensions/no-debug-zts-20240924/ev.so /usr/local/lib/php/extensions/no-debug-zts-20240924/
COPY --from=ev /usr/local/etc/php/conf.d/ev.ini /usr/local/etc/php/conf.d/ev.ini
COPY . /usr/src/code
CMD [ "tail", "-f", "/dev/null" ]