From 254bbbaaad0a2c0bfc18209942b2d8eb179e1c0d Mon Sep 17 00:00:00 2001 From: Macintoshplus <814683+macintoshplus@users.noreply.github.com> Date: Wed, 17 Jun 2015 10:36:17 +0200 Subject: [PATCH] First commit --- Dockerfile | 62 ++++++++++++++++++++++++++++++++ bin/container-bootstrap.sh | 12 +++++++ conf/supervisor/supervisord.conf | 5 +++ 3 files changed, 79 insertions(+) create mode 100644 Dockerfile create mode 100755 bin/container-bootstrap.sh create mode 100644 conf/supervisor/supervisord.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6d406e1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,62 @@ +## +# Jb Nahan PHP 5.6 container +## + +FROM debian:jessie +MAINTAINER Jean-Baptiste Nahan + +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get -y upgrade + +# Common packages +RUN apt-get -y install curl wget locales nano + +RUN echo "Europe/Paris" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata +RUN export LANGUAGE=en_US.UTF-8 && \ + export LANG=en_US.UTF-8 && \ + export LC_ALL=en_US.UTF-8 && \ + locale-gen en_US.UTF-8 && \ + DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales + +# Supervisor +RUN apt-get install -y supervisor +RUN mkdir -p /var/log/supervisor +COPY conf/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf + +# Apache +RUN apt-get -y install apache2 libapache2-mod-php5 pdftk mysql-client +RUN a2enmod rewrite +RUN a2enmod headers +ENV APACHE_RUN_USER www-data +ENV APACHE_RUN_GROUP www-data +ENV APACHE_LOG_DIR /var/log/apache2 +RUN rm /etc/apache2/sites-enabled/000-default.conf +RUN usermod -u 10000 www-data + +# PHP +RUN apt-get -y install php5-cli php5-curl php-soap php5-imagick php5-gd php5-mcrypt php5-mysql php5-xmlrpc php5-xsl php5-xdebug php-apc php5-ldap php5-gmp php5-intl php5-redis +RUN cp /usr/share/php5/php.ini-development /etc/php5/cli/php.ini +RUN cp /usr/share/php5/php.ini-development /etc/php5/apache2/php.ini +RUN sed -i 's/\;date\.timezone\ \=/date\.timezone\ \=\ Europe\/Paris/g' /etc/php5/cli/php.ini +RUN sed -i 's/\;date\.timezone\ \=/date\.timezone\ \=\ Europe\/Paris/g' /etc/php5/apache2/php.ini +RUN sed -i 's/;include_path = ".:\/usr\/share\/php"/include_path = ".:\/var\/www\/library"/g' /etc/php5/cli/php.ini +RUN sed -i 's/\;include_path = ".:\/usr\/share\/php"/include_path = ".:\/var\/www\/library"/g' /etc/php5/apache2/php.ini +RUN sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php5/apache2/php.ini +RUN sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php5/apache2/php.ini +RUN sed -i 's/\;\ max_input_vars\ \=\ 1000/max_input_vars\ \=\ 250000/g' /etc/php5/apache2/php.ini +RUN sed -i 's/memory_limit\ \=\ 128M/memory_limit\ \=\ 512M/g' /etc/php5/apache2/php.ini +RUN sed -i 's/max_execution_time\ \=\ 30/max_execution_time\ \=\ 120/g' /etc/php5/apache2/php.ini + +# PaaS bootstrap +COPY bin/container-bootstrap.sh /usr/bin/container-bootstrap.sh +RUN chmod +x /usr/bin/container-bootstrap.sh + +EXPOSE 80 + +VOLUME /src +VOLUME /etc/apache2/sites-available +VOLUME /var/log/apache2 + +WORKDIR /src + +CMD ["/usr/bin/container-bootstrap.sh"] diff --git a/bin/container-bootstrap.sh b/bin/container-bootstrap.sh new file mode 100755 index 0000000..aff9b37 --- /dev/null +++ b/bin/container-bootstrap.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Give apache user same uid as owener of wwwroot to avoid problems on upload. +if [ -d "/src" ] + then + USERID=$(stat -c "%u" /src) + usermod -u $USERID www-data +fi + + +# Start supervisor +/usr/bin/supervisord diff --git a/conf/supervisor/supervisord.conf b/conf/supervisor/supervisord.conf new file mode 100644 index 0000000..e7ce507 --- /dev/null +++ b/conf/supervisor/supervisord.conf @@ -0,0 +1,5 @@ +[supervisord] +nodaemon=true + +[program:apache2] +command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DNO_DETACH -DNO_DAEMONIZE -DFOREGROUND"