-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile.rr
More file actions
104 lines (84 loc) · 2.88 KB
/
Copy pathDockerfile.rr
File metadata and controls
104 lines (84 loc) · 2.88 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
93
94
95
96
97
98
99
100
101
102
103
104
#syntax=docker/dockerfile:1
ARG PHP_VERSION
ARG COMPOSER_VERSION
ARG ALPINE_VERSION
FROM composer:$COMPOSER_VERSION AS local-composer
FROM php:$PHP_VERSION-cli-alpine$ALPINE_VERSION AS base
COPY --from=mlocati/php-extension-installer:2.11.8 /usr/bin/install-php-extensions /usr/bin/
RUN <<EOT
set -eux
apk add --no-cache bash git jq postgresql-client
install-php-extensions bcmath calendar exif intl pcntl opcache pgsql pdo_pgsql redis sockets zip
cd "$PHP_INI_DIR"
sed -ri \
-e 's/^;?(max_execution_time).*/\1 = ${PHP_MAX_EXECUTION_TIME}/' \
-e 's/^;?(max_input_vars).*/\1 = ${PHP_MAX_INPUT_VARS}/' \
-e 's/^;?(memory_limit).*/\1 = ${PHP_MEMORY_LIMIT}/' \
-e 's/^;?(post_max_size).*/\1 = ${PHP_POST_MAX_SIZE}/' \
-e 's/^;?(upload_max_filesize).*/\1 = ${PHP_UPLOAD_MAX_FILESIZE}/' \
-e 's/^;?(max_file_uploads).*/\1 = ${PHP_MAX_FILE_UPLOADS}/' \
-e 's/^;?(expose_php).*/\1 = Off/' \
php.ini-production
ln -s php.ini-production php.ini
EOT
ENV LC_ALL=C
ARG PHP_MAX_EXECUTION_TIME=30
ENV PHP_MAX_EXECUTION_TIME=$PHP_MAX_EXECUTION_TIME
ARG PHP_MAX_INPUT_VARS=1000
ENV PHP_MAX_INPUT_VARS=$PHP_MAX_INPUT_VARS
ARG PHP_MEMORY_LIMIT=256M
ENV PHP_MEMORY_LIMIT=$PHP_MEMORY_LIMIT
ARG PHP_POST_MAX_SIZE=32M
ENV PHP_POST_MAX_SIZE=$PHP_POST_MAX_SIZE
ARG PHP_UPLOAD_MAX_FILESIZE=8M
ENV PHP_UPLOAD_MAX_FILESIZE=$PHP_UPLOAD_MAX_FILESIZE
ARG PHP_MAX_FILE_UPLOADS=20
ENV PHP_MAX_FILE_UPLOADS=$PHP_MAX_FILE_UPLOADS
ARG COMPOSER_MEMORY_LIMIT=-1
ENV COMPOSER_MEMORY_LIMIT=$COMPOSER_MEMORY_LIMIT
ARG COMPOSER_VERSION
COPY --from=local-composer /usr/bin/composer /usr/bin/composer
RUN <<EOT
set -eux
if [ "$COMPOSER_VERSION" = "1" ]; then
composer global require hirak/prestissimo
composer clear-cache
fi
EOT
COPY --from=ghcr.io/roadrunner-server/roadrunner:2025.1.14 /usr/bin/rr /usr/local/bin/rr
COPY rootfs.common/ /
COPY rootfs.rr/ /
USER nobody:nogroup
WORKDIR /app
FROM base AS onbuild
ONBUILD ARG PHP_MAX_EXECUTION_TIME
ONBUILD ENV PHP_MAX_EXECUTION_TIME=${PHP_MAX_EXECUTION_TIME:-30}
ONBUILD ARG PHP_MAX_INPUT_VARS
ONBUILD ENV PHP_MAX_INPUT_VARS=${PHP_MAX_INPUT_VARS:-1000}
ONBUILD ARG PHP_MEMORY_LIMIT
ONBUILD ENV PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-256M}
ONBUILD ARG PHP_POST_MAX_SIZE
ONBUILD ENV PHP_POST_MAX_SIZE=${PHP_POST_MAX_SIZE:-32M}
ONBUILD ARG PHP_UPLOAD_MAX_FILESIZE
ONBUILD ENV PHP_UPLOAD_MAX_FILESIZE=${PHP_UPLOAD_MAX_FILESIZE:-8M}
ONBUILD ARG PHP_MAX_FILE_UPLOADS
ONBUILD ENV PHP_MAX_FILE_UPLOADS=${PHP_MAX_FILE_UPLOADS:-20}
ONBUILD ARG SKIP_BUILD
ONBUILD ARG DEPS
ONBUILD ARG INSTALL
ONBUILD ARG INSTALL_GD
ONBUILD ARG INSTALL_IMAGICK
ONBUILD ARG INSTALL_MOSQUITTO
ONBUILD ARG INSTALL_MYSQL
ONBUILD ARG INSTALL_SQLSRV
ONBUILD ARG INSTALL_XDEBUG
ONBUILD ARG COMPOSER_VERSION
ONBUILD ARG IPE_GD_WITHOUTAVIF=1
ONBUILD USER root
ONBUILD RUN <<EOT
set -eux
if [ "${SKIP_BUILD:-}" != "true" ]; then
clevyr-build
fi
EOT
ONBUILD USER nobody:nogroup