From 1de5eb7a1d7a9022be40f0568a12ccad7ecceabe Mon Sep 17 00:00:00 2001 From: Ruben Vermeersch Date: Thu, 28 Jul 2016 13:58:35 +0200 Subject: [PATCH] Switch to Alpine base image This brings the image size down from 278.3MB to 100.2MB --- Dockerfile | 24 ++++++++++-------------- supervisord.conf | 8 ++++---- ttrss.nginx.conf | 45 +++++++++++++++++++++++++++++++-------------- 3 files changed, 45 insertions(+), 32 deletions(-) diff --git a/Dockerfile b/Dockerfile index a023345..1abbc7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,21 @@ -FROM ubuntu +FROM alpine:3.4 MAINTAINER Christian Lück -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \ - nginx supervisor php5-fpm php5-cli php5-curl php5-gd php5-json \ - php5-pgsql php5-mysql php5-mcrypt && apt-get clean && rm -rf /var/lib/apt/lists/* - -# enable the mcrypt module -RUN php5enmod mcrypt +RUN apk add --update nginx supervisor php5-fpm php5-cli php5-curl php5-gd php5-json php5-dom php5-pcntl php5-posix \ + php5-pgsql php5-mysql php5-mcrypt php5-pdo php5-pdo_pgsql php5-pdo_mysql ca-certificates && \ + rm -rf /var/cache/apk/* # add ttrss as the only nginx site -ADD ttrss.nginx.conf /etc/nginx/sites-available/ttrss -RUN ln -s /etc/nginx/sites-available/ttrss /etc/nginx/sites-enabled/ttrss -RUN rm /etc/nginx/sites-enabled/default +ADD ttrss.nginx.conf /etc/nginx/nginx.conf # install ttrss and patch configuration WORKDIR /var/www -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl --no-install-recommends && rm -rf /var/lib/apt/lists/* \ +RUN apk add --update --virtual build-dependencies curl tar \ && curl -SL https://tt-rss.org/gitlab/fox/tt-rss/repository/archive.tar.gz?ref=master | tar xzC /var/www --strip-components 1 \ - && apt-get purge -y --auto-remove curl \ - && chown www-data:www-data -R /var/www -RUN cp config.php-dist config.php + && apk del build-dependencies \ + && rm -rf /var/cache/apk/* \ + && cp config.php-dist config.php \ + && chown nobody:nginx -R /var/www # expose only nginx HTTP port EXPOSE 80 diff --git a/supervisord.conf b/supervisord.conf index f117df0..2d8d7db 100644 --- a/supervisord.conf +++ b/supervisord.conf @@ -1,15 +1,15 @@ [supervisord] nodaemon=true -[program:php5-fpm] -command=/usr/sbin/php5-fpm --nodaemonize +[program:php-fpm] +command=/usr/bin/php-fpm --nodaemonize [program:nginx] -command=/usr/sbin/nginx -g "daemon off;" +command=/usr/sbin/nginx [program:ttrss-update-daemon] command=/usr/bin/php /var/www/update_daemon2.php -user=www-data +user=nobody stdout_logfile=/tmp/%(program_name)s.stdout stderr_logfile=/tmp/%(program_name)s.stderr diff --git a/ttrss.nginx.conf b/ttrss.nginx.conf index fa46f23..1d37290 100644 --- a/ttrss.nginx.conf +++ b/ttrss.nginx.conf @@ -1,18 +1,35 @@ -server { - listen 80; - root /var/www; +daemon off; +pid /run/nginx.pid; +worker_processes 1; - index index.php index.html; +events { + worker_connections 1024; +} - location / { - try_files $uri $uri/ =404; - } +http { + include mime.types; + default_type application/octet-stream; - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/var/run/php5-fpm.sock; - fastcgi_index index.php; - include fastcgi_params; - } -} + sendfile on; + keepalive_timeout 65; + gzip on; + + server { + listen 80; + root /var/www; + 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_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_index index.php; + include fastcgi_params; + } + } +}