-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile-8.2
94 lines (80 loc) · 2.65 KB
/
Dockerfile-8.2
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
FROM php:8.2-apache-buster
LABEL maintainer="Jakub Bouček <[email protected]>"
LABEL org.label-schema.name="PHP 8.2 (Apache module), Debian Buster"
LABEL org.label-schema.vcs-url="https://github.com/redbitcz/docker-php-wkhtmltopdf-template"
# Workdir during installation
WORKDIR /tmp
# Copy fonts
COPY fonts/ /usr/share/fonts/
COPY fontconf/ /etc/fonts/conf.d/
WORKDIR /tmp
# Use local mirrors to install Debian updates
COPY sources.list-buster /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 \
build-essential \
ca-certificates \
ca-certificates \
fontconfig \
fonts-dejavu-extra \
fonts-inconsolata \
fonts-liberation \
fonts-roboto \
libjpeg62-turbo \
nano \
openssl \
ttf-mscorefonts-installer \
tzdata \
xfonts-100dpi \
xfonts-75dpi \
xfonts-base \
xorg \
xz-utils; \
docker-php-ext-install -j$(nproc) \
opcache; \
curl -L https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb \
-o wkhtmltox_0.12.6-1.buster_amd64.deb; \
dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb; \
fc-cache -f -v; \
a2enmod \
rewrite \
expires \
headers; \
apt-get clean -y && \
apt-get autoclean -y && \
apt-get autoremove -y && \
rm -rf /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_ENABLE 1
ENV PHP_OPCACHE_ENABLE_CLI 0
ENV PHP_OPCACHE_MEMORY_CONSUPTION 128
ENV PHP_OPCACHE_REVALIDATE_FREQ 2
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS 1
COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini
# Move Apache Document root to sub-directory `www` (PHP frameworks convention)
ENV APACHE_DOCUMENT_ROOT /var/www/html/www
# Configure Apache listening port
ENV PORT 80
# Setup Devstack (setup DocumentRoot and Port)
RUN set -eux; \
sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf; \
sed -ri -e 's!:80>!:${PORT}>!g' /etc/apache2/sites-available/*.conf; \
sed -ri -e 's!Listen 80!Listen ${PORT}!g' /etc/apache2/ports.conf;
# Workdir after installation
WORKDIR /var/www/html