-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile-5.6
153 lines (141 loc) · 4.74 KB
/
Dockerfile-5.6
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
FROM php:5.6-fpm
WORKDIR /var/www
# Additional extensions
RUN apt-get update \
&& apt-get install -y unzip \
# for intl extension
libicu-dev \
# for mcrypt extension
libmcrypt-dev \
# for mongodb
libssl-dev \
# for rabbit mq
librabbitmq-dev \
# for zero mq
libsodium-dev \
# for memcached
libmemcached-dev \
# for postgres
libpq-dev \
# for soap
libxml2 \
libxml2-dev \
zlib1g-dev \
libmcrypt4 \
&& pecl install amqp \
&& pecl install memcached-2.2.0 \
&& pecl install redis-2.2.8 \
&& docker-php-ext-configure bcmath --enable-bcmath \
&& docker-php-ext-configure intl --enable-intl \
&& docker-php-ext-configure pcntl --enable-pcntl \
&& docker-php-ext-configure pdo_mysql --with-pdo-mysql \
&& docker-php-ext-configure pdo_pgsql --with-pgsql \
&& docker-php-ext-configure mbstring --enable-mbstring \
&& docker-php-ext-configure soap --enable-soap \
&& docker-php-ext-install \
bcmath \
intl \
mcrypt \
pcntl \
pdo_mysql \
pdo_pgsql \
mbstring \
soap
# Possible values for ext-name:
# bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl
# json ldap mbstring mcrypt mssql mysql mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci
# pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap
# sockets spl standard sybase_ct sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip
RUN apt-get update && apt-get install -q -y --no-install-recommends \
git \
openssh-client \
rsync \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libssl-dev \
libz-dev \
mysql-client \
zlib1g-dev \
libsqlite3-dev \
zip \
libxml2-dev \
libcurl3-dev \
libedit-dev \
libpspell-dev \
libldap2-dev \
unixodbc-dev \
libpq-dev \
nodejs \
vim \
libgd-dev \
libmagickwand-dev \
libfreetype6-dev \
libjpeg-dev \
libxpm-dev \
libpng-dev \
libicu-dev \
libxslt1-dev \
libmemcached-dev \
libxml2-dev \
libxpm-dev \
libvpx-dev \
ssmtp mailutils \
procps \
libssh2-1-dev \
libssl-dev
# https://bugs.php.net/bug.php?id=49876
RUN ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# PHP geoip module + cron
RUN apt-get install -y --no-install-recommends \
geoip-bin geoip-database libgeoip-dev cron \
&& pecl install geoip igbinary-2.0.1 ssh2-0.13 msgpack-0.5.7\
&& echo "extension=geoip.so" > /usr/local/etc/php/conf.d/ext-geoip.ini
RUN echo "Installing PHP extensions" \
&& pecl install imagick \
&& docker-php-ext-configure gd \
--with-freetype-dir=/usr/lib/x86_64-linux-gnu/ \
--with-jpeg-dir=/usr/lib/x86_64-linux-gnu/ \
--with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \
--with-vpx-dir=/usr/lib/x86_64-linux-gnu/ \
--with-png-dir=/usr/lib/x86_64-linux-gnu/ \
--enable-gd-jis-conv \
&& docker-php-ext-install iconv mcrypt pdo_mysql pdo_pgsql pcntl zip bcmath simplexml xmlrpc soap pspell ldap mbstring mysql mysqli zip sockets bz2 gettext gd \
&& docker-php-ext-enable iconv mcrypt pdo_mysql pdo_pgsql pcntl zip bcmath simplexml xmlrpc soap pspell ldap mbstring mysql mysqli zip sockets bz2 gettext imagick gd igbinary ssh2 msgpack \
&& ldconfig
RUN pear install --alldeps \
Auth_SASL \
Auth_SASL2-beta \
Benchmark \
pear.php.net/Console_Color2-0.1.2 \
Console_Table \
HTTP_OAuth-0.3.1 \
HTTP_Request2 \
Log \
Mail \
MDB2 \
Net_GeoIP \
Net_SMTP \
Net_Socket \
XML_RPC2 \
pear.symfony.com/YAML
# install composer
RUN curl -sS https://getcomposer.org/installer | php -- --filename=composer --install-dir=/bin
ENV PATH /root/.composer/vendor/bin:$PATH
# Copy configuration
COPY config/php.ini /usr/local/etc/php/
COPY config/amqp.ini /usr/local/etc/php/conf.d/
COPY config/fpm/php-fpm.conf /usr/local/etc/
COPY config/fpm/pool.d /usr/local/etc/pool.d
COPY config/redis.ini /usr/local/etc/php/conf.d/
COPY config/memcached.ini /usr/local/etc/php/conf.d/
# Clean up, try to reduce image size (much as you can on Debian..)
RUN apt-get autoremove -y \
&& apt-get clean all \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /usr/share/doc /usr/share/man /usr/share/locale \
&& rm -f /usr/local/etc/php-fpm.d/*.conf \
&& rm -rf /usr/src/php \
&& rm -rf /var/www \
&& mkdir -p /var/www
EXPOSE 9000