-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathDockerfile-56
188 lines (154 loc) · 5.02 KB
/
Dockerfile-56
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
FROM php:5.6.31-fpm
MAINTAINER Maxime HELIAS <[email protected]>
# Add content for php
COPY . /usr/local/docker
RUN chmod -R 777 /usr/local/docker
# Update & Install
RUN apt-get update && \
apt-get install -y wget \
curl \
libmemcached-dev \
libz-dev \
libpq-dev \
libjpeg-dev \
libpng12-dev \
libfreetype6-dev \
libssl-dev \
libmcrypt-dev \
mailutils \
ssmtp \
php5-mapscript && \
docker-php-ext-configure gd \
--enable-gd-native-ttf \
--with-jpeg-dir=/usr/include/ \
--with-freetype-dir=/usr/include/freetype2 && \
docker-php-ext-install -j$(nproc) \
gd \
mcrypt \
mbstring \
pdo_pgsql
ADD php.ini /usr/local/etc/php/conf.d/
ADD php-fpm.conf /usr/local/etc/php-fpm-custom.conf
# Add PHP MapScript
RUN cp /usr/lib/php5/20131226/php_mapscript.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/php_mapscript.so
RUN docker-php-ext-enable php_mapscript
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
ENV HOST_IP = `/sbin/ip route | awk '/default/ { print $3}'`
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
pecl install xdebug-2.5.5 && \
docker-php-ext-enable xdebug && \
echo "xdebug.remote_host="$HOST_IP >> /usr/local/etc/php/conf.d/xdebug.ini \
;fi
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \
curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version && \
tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \
mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so && \
echo "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" >> /usr/local/etc/php/conf.d/blackfire.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 5
#####################################
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
pecl install redis && \
rm -rf /tmp/pear && \
docker-php-ext-enable redis \
;fi
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get install librabbitmq-dev -y && \
# Install the amqp extension
pecl install amqp && \
docker-php-ext-enable amqp \
;fi
#####################################
# ZipArchive:
#####################################
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install the zip extension
docker-php-ext-install zip \
;fi
#####################################
# Opcache:
#####################################
ARG INSTALL_OPCACHE=false
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
docker-php-ext-install opcache \
;fi
# Copy opcache configration
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
#####################################
# Tokenizer Modifications:
#####################################
ARG INSTALL_TOKENIZER=false
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
#####################################
# Human Language and Character Encoding Support:
#####################################
ARG INSTALL_INTL=false
RUN if [ ${INSTALL_INTL} = true ]; then \
# Install intl and requirements
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
#####################################
# GMP (GNU Multiple Precision):
#####################################
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
# Install the GMP extension
apt-get update -yqq && \
apt-get install -y libgmp-dev && \
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \
docker-php-ext-install gmp \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get update -yqq && \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get update -y && \
apt-get install -y libmagickwand-dev imagemagick && \
pecl install imagick && \
docker-php-ext-enable imagick \
;fi
#####################################
# Final:
#####################################
# Clean up
USER root
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
perl -pi -e "s/mailhub=mail/mailhub=maildev/" /etc/ssmtp/ssmtp.conf
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000