From 8c724b51dad0a057bafb587876a596bbabc88f32 Mon Sep 17 00:00:00 2001
From: Wonderfall <wonderfall@schrodinger.io>
Date: Fri, 23 Sep 2016 00:50:39 +0200
Subject: [PATCH] nextcloud: replace crond with script

---
 nextcloud/10.0/Dockerfile     | 12 +++++-------
 nextcloud/10.0/cron           |  2 --
 nextcloud/10.0/run.sh         |  9 +++++----
 nextcloud/10.0/s6.d/cron/run  |  6 ++++++
 nextcloud/9.0/Dockerfile      | 12 +++++-------
 nextcloud/9.0/cron            |  2 --
 nextcloud/9.0/run.sh          |  9 +++++----
 nextcloud/9.0/s6.d/cron/run   |  6 ++++++
 nextcloud/daily/Dockerfile    | 12 +++++-------
 nextcloud/daily/cron          |  2 --
 nextcloud/daily/run.sh        |  9 +++++----
 nextcloud/daily/s6.d/cron/run |  6 ++++++
 12 files changed, 48 insertions(+), 39 deletions(-)
 delete mode 100644 nextcloud/10.0/cron
 create mode 100644 nextcloud/10.0/s6.d/cron/run
 delete mode 100644 nextcloud/9.0/cron
 create mode 100644 nextcloud/9.0/s6.d/cron/run
 delete mode 100644 nextcloud/daily/cron
 create mode 100644 nextcloud/daily/s6.d/cron/run

diff --git a/nextcloud/10.0/Dockerfile b/nextcloud/10.0/Dockerfile
index eaf9375..f2a2d58 100644
--- a/nextcloud/10.0/Dockerfile
+++ b/nextcloud/10.0/Dockerfile
@@ -8,7 +8,8 @@ ARG GPG_nextcloud="2880 6A87 8AE4 23A2 8372  792E D758 99B9 A724 937A"
 ENV UID=991 GID=991 \
     UPLOAD_MAX_SIZE=10G \
     APC_SHM_SIZE=128M \
-    OPCACHE_MEM_SIZE=128
+    OPCACHE_MEM_SIZE=128 \
+    CRON_PERIOD=15m
 
 RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
  && echo "@testing https://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
@@ -61,14 +62,12 @@ RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/a
  && wget -q http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${GNU_LIBICONV_VERSION}.tar.gz \
  && tar xzf libiconv-${GNU_LIBICONV_VERSION}.tar.gz && cd libiconv-${GNU_LIBICONV_VERSION} \
  && ./configure --prefix=/usr/local \
- && wget https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
+ && wget -q https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
  && patch -p1 -u < libiconv-1-fixes.patch \
  && make && make install && libtool --finish /usr/local/lib && cd /tmp \
  && wget -q http://is1.php.net/get/php-7.0.11.tar.gz/from/this/mirror -O php7.tar.gz \
  && tar xzf php7.tar.gz && cd /tmp/php-7.0.11/ext/iconv && phpize7 \
- && ./configure \
-    --with-iconv=/usr/local \
-    --with-php-config=/usr/bin/php-config7 \
+ && ./configure --with-iconv=/usr/local --with-php-config=/usr/bin/php-config7 \
  && make && cp modules/iconv.so /usr/lib/php7/modules && cd /tmp \
  && echo "extension=iconv.so" > /etc/php7/conf.d/00_iconv.ini \
  && NEXTCLOUD_TARBALL="nextcloud-${NEXTCLOUD_VERSION}.tar.bz2" \
@@ -95,10 +94,9 @@ COPY opcache.ini /etc/php7/conf.d/00_opcache.ini
 COPY apcu.ini /etc/php7/conf.d/apcu.ini
 COPY run.sh /usr/local/bin/run.sh
 COPY occ /usr/local/bin/occ
-COPY cron /etc/periodic/15min/nextcloud
 COPY s6.d /etc/s6.d
 
-RUN chmod +x /usr/local/bin/* /etc/periodic/15min/nextcloud /etc/s6.d/*/*
+RUN chmod +x /usr/local/bin/* /etc/s6.d/*/*
 
 VOLUME /data /config /apps2
 
diff --git a/nextcloud/10.0/cron b/nextcloud/10.0/cron
deleted file mode 100644
index 1e52370..0000000
--- a/nextcloud/10.0/cron
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-su-exec $UID:$GID php7 -f /nextcloud/cron.php > /dev/null 2>&1
diff --git a/nextcloud/10.0/run.sh b/nextcloud/10.0/run.sh
index b92537d..3fdff29 100644
--- a/nextcloud/10.0/run.sh
+++ b/nextcloud/10.0/run.sh
@@ -6,11 +6,12 @@ fi
 
 sed -i -e "s/<UPLOAD_MAX_SIZE>/$UPLOAD_MAX_SIZE/g" /etc/nginx/nginx.conf /etc/php7/php-fpm.conf \
        -e "s/<APC_SHM_SIZE>/$APC_SHM_SIZE/g" /etc/php7/conf.d/apcu.ini \
-       -e "s/<OPCACHE_MEM_SIZE>/$OPCACHE_MEM_SIZE/g" /etc/php7/conf.d/00_opcache.ini
+       -e "s/<OPCACHE_MEM_SIZE>/$OPCACHE_MEM_SIZE/g" /etc/php7/conf.d/00_opcache.ini \
+       -e "s/<CRON_PERIOD>/$CRON_PERIOD/g" /etc/s6.d/cron/run
 
 chown -R $UID:$GID /nextcloud /data /config /apps2 /etc/nginx /etc/php7 /var/log /var/lib/nginx /tmp /etc/s6.d
-ln -s /config/config.php /nextcloud/config/config.php
-ln -s /apps2 /nextcloud
 
-crond
+ln -s /config/config.php /nextcloud/config/config.php &>/dev/null
+ln -s /apps2 /nextcloud &>/dev/null
+
 exec su-exec $UID:$GID /bin/s6-svscan /etc/s6.d
diff --git a/nextcloud/10.0/s6.d/cron/run b/nextcloud/10.0/s6.d/cron/run
new file mode 100644
index 0000000..2e6fec5
--- /dev/null
+++ b/nextcloud/10.0/s6.d/cron/run
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+while true; do
+  php7 -f /nextcloud/cron.php
+  sleep <CRON_PERIOD>
+done
diff --git a/nextcloud/9.0/Dockerfile b/nextcloud/9.0/Dockerfile
index 50e81cb..085f86c 100644
--- a/nextcloud/9.0/Dockerfile
+++ b/nextcloud/9.0/Dockerfile
@@ -8,7 +8,8 @@ ARG GPG_nextcloud="2880 6A87 8AE4 23A2 8372  792E D758 99B9 A724 937A"
 ENV UID=991 GID=991 \
     UPLOAD_MAX_SIZE=10G \
     APC_SHM_SIZE=128M \
-    OPCACHE_MEM_SIZE=128
+    OPCACHE_MEM_SIZE=128 \
+    CRON_PERIOD=15m
 
 RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
  && echo "@testing https://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
@@ -61,14 +62,12 @@ RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/a
  && wget -q http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${GNU_LIBICONV_VERSION}.tar.gz \
  && tar xzf libiconv-${GNU_LIBICONV_VERSION}.tar.gz && cd libiconv-${GNU_LIBICONV_VERSION} \
  && ./configure --prefix=/usr/local \
- && wget https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
+ && wget -q https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
  && patch -p1 -u < libiconv-1-fixes.patch \
  && make && make install && libtool --finish /usr/local/lib && cd /tmp \
  && wget -q http://is1.php.net/get/php-7.0.11.tar.gz/from/this/mirror -O php7.tar.gz \
  && tar xzf php7.tar.gz && cd /tmp/php-7.0.11/ext/iconv && phpize7 \
- && ./configure \
-    --with-iconv=/usr/local \
-    --with-php-config=/usr/bin/php-config7 \
+ && ./configure --with-iconv=/usr/local --with-php-config=/usr/bin/php-config7 \
  && make && cp modules/iconv.so /usr/lib/php7/modules && cd /tmp \
  && echo "extension=iconv.so" > /etc/php7/conf.d/00_iconv.ini \
  && NEXTCLOUD_TARBALL="nextcloud-${NEXTCLOUD_VERSION}.tar.bz2" \
@@ -95,10 +94,9 @@ COPY opcache.ini /etc/php7/conf.d/00_opcache.ini
 COPY apcu.ini /etc/php7/conf.d/apcu.ini
 COPY run.sh /usr/local/bin/run.sh
 COPY occ /usr/local/bin/occ
-COPY cron /etc/periodic/15min/nextcloud
 COPY s6.d /etc/s6.d
 
-RUN chmod +x /usr/local/bin/* /etc/periodic/15min/nextcloud /etc/s6.d/*/*
+RUN chmod +x /usr/local/bin/* /etc/s6.d/*/*
 
 VOLUME /data /config /apps2
 
diff --git a/nextcloud/9.0/cron b/nextcloud/9.0/cron
deleted file mode 100644
index 1e52370..0000000
--- a/nextcloud/9.0/cron
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-su-exec $UID:$GID php7 -f /nextcloud/cron.php > /dev/null 2>&1
diff --git a/nextcloud/9.0/run.sh b/nextcloud/9.0/run.sh
index b92537d..3fdff29 100644
--- a/nextcloud/9.0/run.sh
+++ b/nextcloud/9.0/run.sh
@@ -6,11 +6,12 @@ fi
 
 sed -i -e "s/<UPLOAD_MAX_SIZE>/$UPLOAD_MAX_SIZE/g" /etc/nginx/nginx.conf /etc/php7/php-fpm.conf \
        -e "s/<APC_SHM_SIZE>/$APC_SHM_SIZE/g" /etc/php7/conf.d/apcu.ini \
-       -e "s/<OPCACHE_MEM_SIZE>/$OPCACHE_MEM_SIZE/g" /etc/php7/conf.d/00_opcache.ini
+       -e "s/<OPCACHE_MEM_SIZE>/$OPCACHE_MEM_SIZE/g" /etc/php7/conf.d/00_opcache.ini \
+       -e "s/<CRON_PERIOD>/$CRON_PERIOD/g" /etc/s6.d/cron/run
 
 chown -R $UID:$GID /nextcloud /data /config /apps2 /etc/nginx /etc/php7 /var/log /var/lib/nginx /tmp /etc/s6.d
-ln -s /config/config.php /nextcloud/config/config.php
-ln -s /apps2 /nextcloud
 
-crond
+ln -s /config/config.php /nextcloud/config/config.php &>/dev/null
+ln -s /apps2 /nextcloud &>/dev/null
+
 exec su-exec $UID:$GID /bin/s6-svscan /etc/s6.d
diff --git a/nextcloud/9.0/s6.d/cron/run b/nextcloud/9.0/s6.d/cron/run
new file mode 100644
index 0000000..2e6fec5
--- /dev/null
+++ b/nextcloud/9.0/s6.d/cron/run
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+while true; do
+  php7 -f /nextcloud/cron.php
+  sleep <CRON_PERIOD>
+done
diff --git a/nextcloud/daily/Dockerfile b/nextcloud/daily/Dockerfile
index f8b1f7d..2350c02 100644
--- a/nextcloud/daily/Dockerfile
+++ b/nextcloud/daily/Dockerfile
@@ -6,7 +6,8 @@ ARG GNU_LIBICONV_VERSION=1.14
 ENV UID=991 GID=991 \
     UPLOAD_MAX_SIZE=10G \
     APC_SHM_SIZE=128M \
-    OPCACHE_MEM_SIZE=128
+    OPCACHE_MEM_SIZE=128 \
+    CRON_PERIOD=15m
 
 RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
  && echo "@testing https://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
@@ -59,14 +60,12 @@ RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/a
  && wget -q http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${GNU_LIBICONV_VERSION}.tar.gz \
  && tar xzf libiconv-${GNU_LIBICONV_VERSION}.tar.gz && cd libiconv-${GNU_LIBICONV_VERSION} \
  && ./configure --prefix=/usr/local \
- && wget https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
+ && wget -q https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
  && patch -p1 -u < libiconv-1-fixes.patch \
  && make && make install && libtool --finish /usr/local/lib && cd /tmp \
  && wget -q http://is1.php.net/get/php-7.0.11.tar.gz/from/this/mirror -O php7.tar.gz \
  && tar xzf php7.tar.gz && cd /tmp/php-7.0.11/ext/iconv && phpize7 \
- && ./configure \
-    --with-iconv=/usr/local \
-    --with-php-config=/usr/bin/php-config7 \
+ && ./configure --with-iconv=/usr/local --with-php-config=/usr/bin/php-config7 \
  && make && cp modules/iconv.so /usr/lib/php7/modules && cd /tmp \
  && echo "extension=iconv.so" > /etc/php7/conf.d/00_iconv.ini \
  && wget -q https://download.nextcloud.com/server/daily/latest.tar.bz2 \
@@ -80,10 +79,9 @@ COPY opcache.ini /etc/php7/conf.d/00_opcache.ini
 COPY apcu.ini /etc/php7/conf.d/apcu.ini
 COPY run.sh /usr/local/bin/run.sh
 COPY occ /usr/local/bin/occ
-COPY cron /etc/periodic/15min/nextcloud
 COPY s6.d /etc/s6.d
 
-RUN chmod +x /usr/local/bin/* /etc/periodic/15min/nextcloud /etc/s6.d/*/*
+RUN chmod +x /usr/local/bin/* /etc/s6.d/*/*
 
 VOLUME /data /config /apps2
 
diff --git a/nextcloud/daily/cron b/nextcloud/daily/cron
deleted file mode 100644
index 1e52370..0000000
--- a/nextcloud/daily/cron
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-su-exec $UID:$GID php7 -f /nextcloud/cron.php > /dev/null 2>&1
diff --git a/nextcloud/daily/run.sh b/nextcloud/daily/run.sh
index b92537d..3fdff29 100644
--- a/nextcloud/daily/run.sh
+++ b/nextcloud/daily/run.sh
@@ -6,11 +6,12 @@ fi
 
 sed -i -e "s/<UPLOAD_MAX_SIZE>/$UPLOAD_MAX_SIZE/g" /etc/nginx/nginx.conf /etc/php7/php-fpm.conf \
        -e "s/<APC_SHM_SIZE>/$APC_SHM_SIZE/g" /etc/php7/conf.d/apcu.ini \
-       -e "s/<OPCACHE_MEM_SIZE>/$OPCACHE_MEM_SIZE/g" /etc/php7/conf.d/00_opcache.ini
+       -e "s/<OPCACHE_MEM_SIZE>/$OPCACHE_MEM_SIZE/g" /etc/php7/conf.d/00_opcache.ini \
+       -e "s/<CRON_PERIOD>/$CRON_PERIOD/g" /etc/s6.d/cron/run
 
 chown -R $UID:$GID /nextcloud /data /config /apps2 /etc/nginx /etc/php7 /var/log /var/lib/nginx /tmp /etc/s6.d
-ln -s /config/config.php /nextcloud/config/config.php
-ln -s /apps2 /nextcloud
 
-crond
+ln -s /config/config.php /nextcloud/config/config.php &>/dev/null
+ln -s /apps2 /nextcloud &>/dev/null
+
 exec su-exec $UID:$GID /bin/s6-svscan /etc/s6.d
diff --git a/nextcloud/daily/s6.d/cron/run b/nextcloud/daily/s6.d/cron/run
new file mode 100644
index 0000000..2e6fec5
--- /dev/null
+++ b/nextcloud/daily/s6.d/cron/run
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+while true; do
+  php7 -f /nextcloud/cron.php
+  sleep <CRON_PERIOD>
+done