|
1 | 1 | FROM debian:jessie |
2 | 2 | MAINTAINER Joel Rowley <joel.rowley@wilds.org> |
3 | 3 |
|
| 4 | +LABEL vendor="The Wilds" \ |
| 5 | + org.wilds.docker-wpdevenvironment.version="2.1.0" |
| 6 | + |
4 | 7 | # Adapted and modified from the following files: |
5 | 8 | # - https://github.com/splattael/docker-debian-php/blob/master/jessie/Dockerfile |
6 | 9 | # - https://github.com/docker-library/php/blob/f016f5dc420e7d360f7381eb014ac6697e247e11/5.6/apache/Dockerfile |
7 | 10 |
|
8 | | -ENV RELEASE_DATE 2016-07-28 |
9 | 11 | ENV DEBIAN_FRONTEND noninteractive |
10 | 12 |
|
11 | 13 | RUN \ |
12 | | - apt-get -qq update && \ |
13 | | - apt-get -qq install \ |
14 | | - apache2 php5 php5-cli ssmtp libapache2-mod-php5 php5-mysql php5-json php5-curl php5-gd \ |
15 | | - php5-xdebug libmcrypt-dev zlib1g-dev telnet git curl vim && \ |
16 | | - apt-get clean && \ |
17 | | - rm -rf /var/lib/apt/lists/* |
18 | | - |
19 | | -ENV MODS_AVAILABLE_PATH /etc/php5/mods-available |
20 | | -ENV CONFD_PATH /etc/php5/apache2/conf.d |
21 | | - |
22 | | -# Copy custom ini modules |
23 | | -COPY mods-available/*.ini ${MODS_AVAILABLE_PATH}/ |
24 | | - |
25 | | -# Enable different module settings |
26 | | -RUN php5enmod xdebug |
27 | | - |
28 | | -# Make sure opcache is disabled |
29 | | -RUN php5dismod opcache |
30 | | - |
31 | | -ENV APACHE_CONFDIR /etc/apache2 |
32 | | -ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars |
33 | | - |
34 | | -# logs should go to stdout / stderr |
35 | | -RUN set -ex \ |
36 | | - && . "$APACHE_ENVVARS" \ |
37 | | - && ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \ |
38 | | - && ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \ |
39 | | - && ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log" |
40 | | - |
41 | | -# PHP files should be handled by PHP, and should be preferred over any other file type |
42 | | -RUN { \ |
43 | | - echo '<FilesMatch \.php$>'; \ |
44 | | - echo '\tSetHandler application/x-httpd-php'; \ |
45 | | - echo '</FilesMatch>'; \ |
46 | | - echo; \ |
| 14 | + apt-get -qq update && apt-get -qq install \ |
| 15 | + apache2 \ |
| 16 | + curl \ |
| 17 | + git \ |
| 18 | + libapache2-mod-php5 \ |
| 19 | + libmcrypt-dev \ |
| 20 | + php5 \ |
| 21 | + php5-cli \ |
| 22 | + php5-curl \ |
| 23 | + php5-gd \ |
| 24 | + php5-json \ |
| 25 | + php5-mysql \ |
| 26 | + php5-xdebug \ |
| 27 | + rsync \ |
| 28 | + ssmtp \ |
| 29 | + telnet \ |
| 30 | + vim \ |
| 31 | + zlib1g-dev \ |
| 32 | + && apt-get clean \ |
| 33 | + && rm -rf /var/lib/apt/lists/* |
| 34 | + |
| 35 | +ENV MODS_AVAILABLE_PATH=/etc/php5/mods-available \ |
| 36 | + CONFD_PATH=/etc/php5/apache2/conf.d \ |
| 37 | + APACHE_CONFDIR=/etc/apache2 \ |
| 38 | + XDEBUG_REMOTE_HOST=10.0.75.1 \ |
| 39 | + TIMEZONE='America/New_York' \ |
| 40 | + VOLUME_PATH=/var/www/html \ |
| 41 | + CERTIFICATE_PATH=/usr/local/share/ca-certificates \ |
| 42 | + TERM=xterm |
| 43 | + |
| 44 | +ENV APACHE_ENVVARS=$APACHE_CONFDIR/envvars |
| 45 | + |
| 46 | +RUN set -e \ |
| 47 | + |
| 48 | + # logs should go to stdout / stderr |
| 49 | + && . "$APACHE_ENVVARS" \ |
| 50 | + && ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \ |
| 51 | + && ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \ |
| 52 | + && ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log" \ |
| 53 | + |
| 54 | + # PHP files should be handled by PHP, and should be preferred over any other file type |
| 55 | + && { \ |
| 56 | + |
| 57 | + echo '<FilesMatch \.php$>'; \ |
| 58 | + echo '\tSetHandler application/x-httpd-php'; \ |
| 59 | + echo '</FilesMatch>'; \ |
| 60 | + echo; \ |
47 | 61 | # echo 'DirectoryIndex disabled'; \ |
48 | | - echo 'DirectoryIndex index.php index.html'; \ |
49 | | - echo; \ |
50 | | - echo '<Directory /var/www/>'; \ |
51 | | - echo '\tOptions -Indexes'; \ |
52 | | - echo '\tAllowOverride All'; \ |
53 | | - echo '</Directory>'; \ |
54 | | - } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ |
55 | | - && a2enconf docker-php |
56 | | - |
57 | | -# Enable mod_rewrite |
58 | | -RUN a2enmod rewrite |
| 62 | + echo 'DirectoryIndex index.php index.html'; \ |
| 63 | + echo; \ |
| 64 | + echo '<Directory /var/www/>'; \ |
| 65 | + echo '\tOptions -Indexes'; \ |
| 66 | + echo '\tAllowOverride All'; \ |
| 67 | + echo '</Directory>'; \ |
| 68 | + } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ |
| 69 | + && a2enconf docker-php \ |
| 70 | + |
| 71 | + # Add a symbolic link to PHP that is the same as the web host. |
| 72 | + # This is primarily for CLI php scripts run inside the container. |
| 73 | + && ln -s $(which php) /usr/local/bin/php56 |
59 | 74 |
|
60 | 75 | # Install composer |
61 | 76 | RUN curl -sS https://getcomposer.org/installer | php -- \ |
62 | | - --install-dir=/usr/local/bin \ |
63 | | - --filename=composer |
64 | | - |
65 | | -# Add a symbolic link to PHP that is the same as the web host. |
66 | | -# This is primarily for CLI php scripts run inside the container. |
67 | | -RUN ln -s $(which php) /usr/local/bin/php56 |
| 77 | + --install-dir=/usr/local/bin \ |
| 78 | + --filename=composer |
68 | 79 |
|
69 | 80 | COPY bin/* /usr/local/bin/ |
70 | 81 |
|
71 | | -ENV TIMEZONE 'America/New_York' |
72 | | - |
73 | | -ENV VOLUME_PATH /var/www/html |
74 | | -ENV CERTIFICATE_PATH /usr/local/share/ca-certificates |
| 82 | +# Copy custom ini modules |
| 83 | +COPY mods-available/*.ini ${MODS_AVAILABLE_PATH}/ |
75 | 84 |
|
76 | | -VOLUME ${VOLUME_PATH} |
77 | | -VOLUME ${CERTIFICATE_PATH} |
| 85 | +# Enable different module settings |
| 86 | +RUN php5enmod xdebug # enable xdebug settings \ |
| 87 | + && php5dismod opcache # disable opcache \ |
| 88 | + && a2enmod rewrite # enable mod_rewrite |
78 | 89 |
|
79 | 90 | WORKDIR ${VOLUME_PATH} |
80 | 91 |
|
|
0 commit comments