forked from jakubboucek/docker-lamp-devstack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile-8.3-cli
More file actions
114 lines (104 loc) · 2.98 KB
/
Dockerfile-8.3-cli
File metadata and controls
114 lines (104 loc) · 2.98 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
FROM php:8.3-cli-bookworm
LABEL maintainer="Jakub Bouček <pan@jakubboucek.cz>"
LABEL org.label-schema.name="PHP 8.3 (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-bookworm /etc/apt/sources.list
# Prevent interactive block
ARG DEBIAN_FRONTEND=noninteractive
# OS binaries install && update critical binaries
RUN set -eux; \
apt-get update; \
apt-get install --no-install-recommends -y \
ca-certificates \
git \
libavif-dev \
libbz2-dev \
libc-client-dev \
libfreetype6-dev \
libgmp-dev \
libicu-dev \
libjpeg62-turbo-dev \
libkrb5-dev \
libmemcached-dev \
libpng-dev \
libsodium-dev \
libwebp-dev \
libxslt-dev \
libzip-dev \
zlib1g-dev \
nano \
openssl \
tzdata \
unzip \
zip; \
docker-php-ext-configure \
gd --with-avif --with-freetype --with-jpeg --with-webp; \
docker-php-ext-configure \
imap --with-kerberos --with-imap-ssl; \
docker-php-ext-install -j$(nproc) \
bcmath \
bz2 \
calendar \
exif \
gd \
gettext \
gmp \
imap \
intl \
mysqli \
opcache \
pcntl \
pdo_mysql \
soap \
sockets \
sodium \
sysvmsg \
sysvsem \
sysvshm \
xsl \
zip; \
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 ""
ENV TZ UTC
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_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
# Install Mecached extension
RUN set -eux; \
pecl install memcached; \
pecl clear-cache; \
docker-php-ext-enable memcached; \
rm -rf /tmp/* /var/tmp/*;
# 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 /