diff --git a/Dockerfile b/Dockerfile index a912218..68fc195 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,36 +2,47 @@ FROM alpine:3.3 MAINTAINER Wonderfall MAINTAINER Hardware +ARG GPG_rainloop="3B79 7ECE 694F 3B7B 70F3 11A4 ED7C 49D9 87DA 4591" + ENV GID=991 UID=991 RUN echo "@commuedge http://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \ + && echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ && apk -U add \ - nginx \ - php-fpm \ - php-curl \ - php-iconv \ - php-xml \ - php-dom \ - php-openssl \ - php-json \ - php-zlib \ - php-pdo_mysql \ - php-pdo_sqlite \ - php-sqlite3 \ - supervisor \ gnupg \ + nginx \ + supervisor \ tini@commuedge \ - && wget -q http://repository.rainloop.net/v2/webmail/rainloop-community-latest.zip -P /tmp \ - && wget -q http://repository.rainloop.net/v2/webmail/rainloop-community-latest.zip.asc -P /tmp \ - && wget -q http://repository.rainloop.net/RainLoop.asc -P /tmp \ - && gpg --import /tmp/RainLoop.asc \ - && gpg --verify /tmp/rainloop-community-latest.zip.asc \ + php7-fpm@testing \ + php7-curl@testing \ + php7-iconv@testing \ + php7-xml@testing \ + php7-dom@testing \ + php7-openssl@testing \ + php7-json@testing \ + php7-zlib@testing \ + php7-pdo_mysql@testing \ + php7-pdo_sqlite@testing \ + php7-sqlite3@testing \ + && cd /tmp \ + && wget -q http://repository.rainloop.net/v2/webmail/rainloop-community-latest.zip \ + && wget -q http://repository.rainloop.net/v2/webmail/rainloop-community-latest.zip.asc \ + && wget -q http://repository.rainloop.net/RainLoop.asc \ + && echo "Verifying authenticity of rainloop-community-latest.zip using GPG..." \ + && gpg --import RainLoop.asc \ + && FINGERPRINT="$(LANG=C gpg --verify rainloop-community-latest.zip.asc rainloop-community-latest.zip 2>&1 \ + | sed -n "s#Primary key fingerprint: \(.*\)#\1#p")" \ + && if [ -z "${FINGERPRINT}" ]; then echo "Warning! Invalid GPG signature!" && exit 1; fi \ + && if [ "${FINGERPRINT}" != "${GPG_rainloop}" ]; then echo "Warning! Wrong GPG fingerprint!" && exit 1; fi \ + && echo "All seems good, now unzipping rainloop-community-latest.zip..." \ && mkdir /rainloop && unzip -q /tmp/rainloop-community-latest.zip -d /rainloop \ + && find /rainloop -type d -exec chmod 755 {} \; \ + && find /rainloop -type f -exec chmod 644 {} \; \ && apk del gnupg \ && rm -rf /tmp/* /var/cache/apk/* COPY nginx.conf /etc/nginx/nginx.conf -COPY php-fpm.conf /etc/php/php-fpm.conf +COPY php-fpm.conf /etc/php7/php-fpm.conf COPY supervisord.conf /etc/supervisor/supervisord.conf COPY startup /usr/local/bin/startup @@ -39,5 +50,4 @@ RUN chmod +x /usr/local/bin/startup VOLUME /rainloop/data EXPOSE 80 -LABEL description "Fast, simple and modern webmail client" -CMD ["tini","--","startup"] +CMD ["/sbin/tini","--","startup"] \ No newline at end of file diff --git a/README.md b/README.md index cad83de..05ae530 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,11 @@ ![](https://i.goopics.net/nI.png) -Rainloop is a SIMPLE, MODERN & FAST WEB-BASED EMAIL CLIENT. More details on the [official website](http://www.rainloop.net/). - -### Requirement - -- Docker 1.0 or higher -- MySQL (Optional, for contacts database) +Rainloop is a simple, modern & fast web-based client. More details on the [official website](http://www.rainloop.net/). ### Features - Based on Alpine 3.3 - Latest Rainloop **Community Edition** (stable) -- Extremely lightweight - Contacts (DB) : sqlite, or mysql (server not built-in) ### How to use @@ -25,6 +19,18 @@ docker run -d \ hardware/rainloop ``` +### Reverse proxy example with nginx + +https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration + +### Initial configuration + +https://github.com/hardware/mailserver/wiki/Rainloop-initial-configuration + +#### Build-time variables + +- **GPG_rainloop** : fingerprint of signing key + ### Environment variables - **UID** : rainloop user id (*optional*, default: 991) @@ -39,9 +45,6 @@ rainloop: container_name: rainloop links: - mariadb:mariadb - environment: - - GID=991 - - UID=991 volumes: - /mnt/docker/rainloop:/rainloop/data @@ -63,12 +66,4 @@ mariadb: ``` docker-compose up -d -``` - -### Reverse proxy example with nginx - -https://github.com/hardware/mailserver/wiki/Reverse-proxy-configuration - -### Initial configuration - -https://github.com/hardware/mailserver/wiki/Rainloop-initial-configuration +``` \ No newline at end of file diff --git a/nginx.conf b/nginx.conf index 9d234f8..ef0f579 100644 --- a/nginx.conf +++ b/nginx.conf @@ -4,8 +4,8 @@ pid /var/run/nginx.pid; daemon off; events { - worker_connections 1024; - use epoll; + worker_connections 1024; + use epoll; } http { diff --git a/startup b/startup index a60acdb..c2bbe52 100644 --- a/startup +++ b/startup @@ -5,8 +5,6 @@ addgroup -g ${GID} rainloop && adduser -h /rainloop -s /bin/sh -D -G rainloop -u # Set permissions chown -R rainloop:rainloop /rainloop /var/run/php-fpm.sock /var/lib/nginx /tmp -find /rainloop -type d -exec chmod 755 {} \; -find /rainloop -type f -exec chmod 644 {} \; # RUN ! supervisord -c /etc/supervisor/supervisord.conf diff --git a/supervisord.conf b/supervisord.conf index 61657fa..f2cd4b1 100644 --- a/supervisord.conf +++ b/supervisord.conf @@ -2,7 +2,7 @@ nodaemon=true [program:php-fpm] -command=php-fpm +command=php-fpm7 [program:nginx] command=nginx