mirror of
https://github.com/x86dev/docker-ttrss
synced 2025-12-11 08:56:01 +00:00
Now based on Alpine Linux and s6 as supervisor, resulting in a much smaller Docker image. See README.md for details and other additions.
This commit is contained in:
62
Dockerfile
62
Dockerfile
@@ -1,59 +1,33 @@
|
||||
FROM kdelfour/supervisor-docker
|
||||
# Using https://github.com/smebberson/docker-alpine, which in turn
|
||||
# uses https://github.com/just-containers/s6-overlay for a s6 Docker overlay
|
||||
FROM smebberson/alpine-base
|
||||
# Initially was based on work of Christian Lück <christian@lueck.tv>
|
||||
MAINTAINER Andreas Löffler <andy@x86dev.com>
|
||||
LABEL description="A complete, self-hosted Tiny Tiny RSS (TTRSS) environment." \
|
||||
maintainer="Andreas Löffler <andy@x86dev.com>"
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \
|
||||
nginx git ca-certificates php5-fpm php5-cli php5-curl php5-gd php5-json php5-mcrypt php5-pgsql
|
||||
RUN set -xe && \
|
||||
apk update && apk upgrade && \
|
||||
apk add --no-cache --virtual=run-deps \
|
||||
nginx git ca-certificates \
|
||||
php5 php5-fpm php5-curl php5-dom php5-gd php5-json php5-mcrypt php5-pcntl php5-pdo php5-pdo_pgsql php5-pgsql php5-posix
|
||||
|
||||
# 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 user www-data for php-fpm
|
||||
# 82 is the standard uid/gid for "www-data" in Alpine
|
||||
RUN adduser -u 82 -D -S -G www-data www-data
|
||||
|
||||
# patch php5-fpm configuration so that it does not daemonize itself. This is
|
||||
# needed so that runit can watch its state and restart it if it crashes etc.
|
||||
RUN sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php5/fpm/php-fpm.conf
|
||||
|
||||
# patch the php-fpm's listening method to _always_ use a unix socket
|
||||
# note: if not done correctly this will result in a "502 Bad Gateway" error
|
||||
# (see /var/log/nginx/error.log for more information then)
|
||||
RUN sed -i -e "s/listen\s*=.*/listen = \/var\/run\/php5-fpm.sock/g" /etc/php5/fpm/pool.d/www.conf
|
||||
|
||||
# enable PHP5 modules
|
||||
RUN php5enmod mcrypt
|
||||
COPY root /
|
||||
|
||||
# expose Nginx ports
|
||||
EXPOSE 80
|
||||
EXPOSE 443
|
||||
EXPOSE 8080
|
||||
EXPOSE 4443
|
||||
|
||||
# expose default database credentials via ENV in order to ease overwriting
|
||||
ENV DB_NAME ttrss
|
||||
ENV DB_USER ttrss
|
||||
ENV DB_PASS ttrss
|
||||
|
||||
# always re-configure database with current ENV when RUNning container, then monitor all services
|
||||
RUN mkdir -p /srv
|
||||
ADD ttrss-utils.php /srv/ttrss-utils.php
|
||||
ADD ttrss-configure-db.php /srv/ttrss-configure-db.php
|
||||
ADD ttrss-configure-plugin-mobilize.php /srv/ttrss-configure-plugin-mobilize.php
|
||||
ADD ttrss-plugin-mobilize.pgsql /srv/ttrss-plugin-mobilize.pgsql
|
||||
|
||||
ADD setup-ttrss.sh /srv/setup-ttrss.sh
|
||||
ADD update-ttrss.sh /srv/update-ttrss.sh
|
||||
ADD start-ttrss.sh /srv/start-ttrss.sh
|
||||
|
||||
RUN mkdir -p /etc/supervisor/conf.d
|
||||
ADD service-nginx.conf /etc/supervisor/conf.d/nginx.conf
|
||||
ADD service-php5-fpm.conf /etc/supervisor/conf.d/php5.conf
|
||||
ADD service-ttrss-daemon.conf /etc/supervisor/conf.d/ttrss-daemon.conf
|
||||
ADD service-ttrss-update.conf /etc/supervisor/conf.d/ttrss-update.conf
|
||||
|
||||
# only run the setup once
|
||||
RUN /srv/setup-ttrss.sh
|
||||
RUN set -xe && /srv/setup-ttrss.sh
|
||||
|
||||
# clean up
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# start supervisord
|
||||
WORKDIR /srv
|
||||
CMD ["/srv/start-ttrss.sh"]
|
||||
RUN set -xe && apk del --progress --purge && rm -rf /var/cache/apk/*
|
||||
|
||||
Reference in New Issue
Block a user