From 732f7f52a401fbb80bb03f602e201f0f924cdfe9 Mon Sep 17 00:00:00 2001 From: Jeffrey Boehm Date: Thu, 13 Oct 2016 14:32:40 +0200 Subject: [PATCH] Web: switched to alpine + nginx (#11) --- docker-compose.yml | 2 - web/Dockerfile | 26 +++++++++++-- web/rootfs/etc/nginx/nginx.conf | 35 ++++++++++++++++++ web/rootfs/etc/supervisord.conf | 21 +++++++++++ .../www/html}/manager/conf/cnf_main.php | 0 .../www/html}/webmail/config/config.inc.php | 0 .../www/html}/webmail/ispmail-logo.png | Bin .../plugins/managesieve/config.inc.php | 0 .../webmail/plugins/password/config.inc.php | 0 9 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 web/rootfs/etc/nginx/nginx.conf create mode 100644 web/rootfs/etc/supervisord.conf rename web/rootfs/{ => var/www/html}/manager/conf/cnf_main.php (100%) rename web/rootfs/{ => var/www/html}/webmail/config/config.inc.php (100%) rename web/rootfs/{ => var/www/html}/webmail/ispmail-logo.png (100%) rename web/rootfs/{ => var/www/html}/webmail/plugins/managesieve/config.inc.php (100%) rename web/rootfs/{ => var/www/html}/webmail/plugins/password/config.inc.php (100%) diff --git a/docker-compose.yml b/docker-compose.yml index 77babb1a..6544aa0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -50,8 +50,6 @@ services: tmpfs: - /var/www/html/webmail/temp - /var/www/html/webmail/logs - - /run/apache2 - - /run/lock/apache2 - /tmp links: - db diff --git a/web/Dockerfile b/web/Dockerfile index e968c550..ad0f9425 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -1,4 +1,4 @@ -FROM php:7.0-apache +FROM php:7.1-fpm-alpine MAINTAINER Jeffrey Boehm "jeff@ressourcenkonflikt.de" ENV MYSQL_HOST=db \ @@ -8,8 +8,24 @@ ENV MYSQL_HOST=db \ MANAGER_URL=http://www.grs-service.ch/pub/grs_mgr_v3-03_jessie_with_php7_setup.tgz \ WEBMAIL_URL=http://github.com/roundcube/roundcubemail/releases/download/1.2.0/roundcubemail-1.2.0.tar.gz -RUN apt-get update && apt-get install --no-install-recommends -y wget zlib1g-dev \ - && docker-php-ext-install mysqli pdo_mysql zip +RUN apk --no-cache add \ + nginx \ + supervisor \ + wget \ + ca-certificates \ + libmcrypt-dev \ + libpng-dev && \ + docker-php-ext-install -j4 \ + mcrypt \ + zip \ + mysqli \ + pdo_mysql && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -s /usr/local/bin/php /usr/bin/php && \ + rm -rf /var/lib/nginx/tmp && \ + ln -sf /tmp /var/lib/nginx/tmp && \ + update-ca-certificates WORKDIR /var/www/html/manager RUN wget -q -O- $MANAGER_URL | tar -zx \ @@ -23,4 +39,6 @@ RUN wget -q -O- --no-check-certificate $WEBMAIL_URL | tar --strip 1 -zx \ && rm -rf installer/ WORKDIR /var/www/html -COPY rootfs/ ./ +COPY rootfs/ / + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] diff --git a/web/rootfs/etc/nginx/nginx.conf b/web/rootfs/etc/nginx/nginx.conf new file mode 100644 index 00000000..d7ffb7e0 --- /dev/null +++ b/web/rootfs/etc/nginx/nginx.conf @@ -0,0 +1,35 @@ +user www-data; +daemon off; +worker_processes 1; + +pid /tmp/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + sendfile on; + keepalive_timeout 65; + gzip on; + + server { + listen 80; + root /var/www/html; + index index.php index.html; + + location / { + try_files $uri $uri/ =404; + } + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; + } + } +} diff --git a/web/rootfs/etc/supervisord.conf b/web/rootfs/etc/supervisord.conf new file mode 100644 index 00000000..ad89f1b3 --- /dev/null +++ b/web/rootfs/etc/supervisord.conf @@ -0,0 +1,21 @@ +[supervisord] +nodaemon=true +logfile=/dev/stderr +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[program:php-fpm] +command=/usr/local/sbin/php-fpm +redirect_stderr=true +stdout_logfile=/dev/stderr +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 + +[program:nginx] +command=/usr/sbin/nginx +redirect_stderr=true +stdout_logfile=/dev/stderr +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 diff --git a/web/rootfs/manager/conf/cnf_main.php b/web/rootfs/var/www/html/manager/conf/cnf_main.php similarity index 100% rename from web/rootfs/manager/conf/cnf_main.php rename to web/rootfs/var/www/html/manager/conf/cnf_main.php diff --git a/web/rootfs/webmail/config/config.inc.php b/web/rootfs/var/www/html/webmail/config/config.inc.php similarity index 100% rename from web/rootfs/webmail/config/config.inc.php rename to web/rootfs/var/www/html/webmail/config/config.inc.php diff --git a/web/rootfs/webmail/ispmail-logo.png b/web/rootfs/var/www/html/webmail/ispmail-logo.png similarity index 100% rename from web/rootfs/webmail/ispmail-logo.png rename to web/rootfs/var/www/html/webmail/ispmail-logo.png diff --git a/web/rootfs/webmail/plugins/managesieve/config.inc.php b/web/rootfs/var/www/html/webmail/plugins/managesieve/config.inc.php similarity index 100% rename from web/rootfs/webmail/plugins/managesieve/config.inc.php rename to web/rootfs/var/www/html/webmail/plugins/managesieve/config.inc.php diff --git a/web/rootfs/webmail/plugins/password/config.inc.php b/web/rootfs/var/www/html/webmail/plugins/password/config.inc.php similarity index 100% rename from web/rootfs/webmail/plugins/password/config.inc.php rename to web/rootfs/var/www/html/webmail/plugins/password/config.inc.php