diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..3663fa6 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,24 @@ +kind: pipeline +type: docker +name: Docker image build + +trigger: + branch: + - master + +environment: + VERSION: 1.15.0 + +steps: + - name: config + image: alpine + commands: + - echo -n "$VERSION,latest" > .tags + - name: build + image: plugins/docker + settings: + username: + from_secret: docker_username + password: + from_secret: docker_password + repo: quackerd/rainloop diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..466802d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM debian:buster + +ENV RAINLOOP_DIR=/var/www/rainloop + +WORKDIR /opt + +COPY ./run.sh /opt/run.sh + +RUN set -xe && \ + apt update -y && \ + apt upgrade -y && \ + apt install -y unzip curl wget php php-curl php-json php-dom php-fpm php-pgsql php-sqlite3 php-mysql nginx && \ + mkdir -p ${RAINLOOP_DIR} && \ + wget https://www.rainloop.net/repository/webmail/rainloop-community-latest.zip && \ + unzip rainloop-community-latest.zip -d ${RAINLOOP_DIR} && \ + rm rainloop-community-latest.zip && \ + mkdir -p /logs && \ + sed -i 's/error_log =.*/error_log = \/logs\/php_fpm.log/g' /etc/php/7.3/fpm/php-fpm.conf && \ + sed -i 's/upload_max_filesize =.*/upload_max_filesize = 100M/g' /etc/php/7.3/fpm/php.ini && \ + sed -i 's/post_max_size =.*/post_max_size = 100M/g' /etc/php/7.3/fpm/php.ini && \ + chown -R www-data:www-data ${RAINLOOP_DIR} && \ + chmod +x /opt/run.sh && \ + apt purge -y --autoremove unzip curl wget && \ + apt clean + +COPY ./default /etc/nginx/sites-enabled/default + +VOLUME ["${RAINLOOP_DIR}/data"] +EXPOSE 80 +CMD ["/opt/run.sh"] + diff --git a/default b/default new file mode 100644 index 0000000..f37be50 --- /dev/null +++ b/default @@ -0,0 +1,31 @@ +server { + listen 80 default_server; + listen [::]:80 default_server; + + root /var/www/rainloop; + + access_log /dev/stdout; + error_log /dev/stderr; + + index index.php; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_index index.php; + fastcgi_split_path_info ^(.+\.php)(.*)$; + fastcgi_keep_conn on; + fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + location ~ /\.ht { + deny all; + } + location ^~ /data { + deny all; + } +} + diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..173e927 --- /dev/null +++ b/run.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -xe +service php7.3-fpm start +exec nginx -g "daemon off;"