-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathDockerfile-8.1-cli
More file actions
146 lines (135 loc) · 3.71 KB
/
Dockerfile-8.1-cli
File metadata and controls
146 lines (135 loc) · 3.71 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
FROM php:8.1-cli-trixie
LABEL maintainer="Jakub Bouček <pan@jakubboucek.cz>"
LABEL org.label-schema.name="PHP 8.1 (CLI)"
LABEL org.label-schema.vcs-url="https://github.com/jakubboucek/docker-lamp-devstack"
# Workdir during installation
WORKDIR /tmp
# Use local mirrors to install Debian updates
COPY sources.list-trixie /etc/apt/sources.list
# Prevent interactive block
ARG DEBIAN_FRONTEND=noninteractive
ARG EXTENSION_DEV_DEPS=" \
libavif-dev \
libbz2-dev \
libfreetype6-dev \
libgmp-dev \
libicu-dev \
libjpeg62-turbo-dev \
libmemcached-dev \
libpng-dev \
libsodium-dev \
libwebp-dev \
libxslt-dev \
libzip-dev \
zlib1g-dev \
"
ARG EXTENSION_RUNTIME_DEPS=" \
libabsl20240722 \
libaom3 \
libavif16 \
libbrotli1 \
libbz2-1.0 \
libdav1d7 \
libfreetype6 \
libgav1-1 \
libgcrypt20 \
libgmp10 \
libgpg-error0 \
libhashkit2t64 \
libicu76 \
libjpeg62-turbo \
liblzma5 \
libmemcached11t64 \
libpng16-16t64 \
librav1e0.7 \
libsasl2-2 \
libsharpyuv0 \
libsodium23 \
libssl3t64 \
libsvtav1enc2 \
libwebp7 \
libxml2 \
libxslt1.1 \
libyuv0 \
libzip5 \
libzstd1 \
zlib1g \
"
# OS binaries install && update critical binaries
RUN set -eux; \
apt-get update; \
apt-get install --no-install-recommends -y \
${EXTENSION_DEV_DEPS} \
ca-certificates \
git \
nano \
openssl \
tzdata \
unzip \
zip; \
docker-php-ext-configure \
gd --with-avif --with-freetype --with-jpeg --with-webp; \
docker-php-ext-install -j$(nproc) \
bcmath \
bz2 \
calendar \
exif \
gd \
gettext \
gmp \
intl \
mysqli \
opcache \
pcntl \
pdo_mysql \
soap \
sockets \
sodium \
sysvmsg \
sysvsem \
sysvshm \
xsl \
zip; \
pecl install memcached; \
docker-php-ext-enable memcached; \
apt-mark manual ${EXTENSION_RUNTIME_DEPS}; \
apt-get purge -y --auto-remove ${EXTENSION_DEV_DEPS}; \
pecl clear-cache; \
apt-get clean -y && \
apt-get autoclean -y && \
apt-get autoremove -y && \
rm -rf /var/cache/* /var/lib/apt/lists/* /var/lib/log/* /tmp/* /var/tmp/*;
# Configure Apache & PHP
# 32767 = E_ALL
ENV PHP_ERROR_REPORTING=32767
ENV PHP_DISPLAY_ERRORS=1
ENV PHP_DISPLAY_STARTUP_ERRORS=1
ENV PHP_ERROR_LOG=""
ENV PHP_LOG_ERRORS=0
ENV PHP_MAX_EXECUTION_TIME=30
ENV PHP_MEMORY_LIMIT=2G
ENV PHP_SESSION_SAVE_PATH=""
COPY core.ini /usr/local/etc/php/conf.d/core.ini
# Configure OPcache
ENV PHP_OPCACHE_BLACKLIST_FILENAME=""
ENV PHP_OPCACHE_ENABLE=1
ENV PHP_OPCACHE_ENABLE_CLI=0
ENV PHP_OPCACHE_JIT=tracing
ENV PHP_OPCACHE_JIT_BUFFER_SIZE=0
ENV PHP_OPCACHE_MEMORY_CONSUPTION=128
ENV PHP_OPCACHE_PRELOAD=""
ENV PHP_OPCACHE_PRELOAD_USER=""
ENV PHP_OPCACHE_REVALIDATE_FREQ=2
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=1
COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini
COPY opcache-7.4.ini /usr/local/etc/php/conf.d/opcache-7.4.ini
COPY opcache-jit.ini /usr/local/etc/php/conf.d/opcache-jit.ini
# Setup Devstack (install Composer)
RUN set -eux; \
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php; \
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer; \
COMPOSER_BIN_DIR=$(composer global config bin-dir --absolute) 2>/dev/null; \
echo "export PATH=${COMPOSER_BIN_DIR}:\${PATH}" >> ~/.bashrc; \
rm -rf /tmp/*;
# Workdir after installation
WORKDIR /