Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Friendica Bugfixing & 2020.03-rc release #7573

Merged
merged 3 commits into from
Mar 10, 2020

Conversation

nupplaphil
Copy link
Contributor

@nupplaphil nupplaphil commented Mar 4, 2020

  • Fix Zombie-process issue
  • Add 2020.03-rc

@yosifkit
Copy link
Member

yosifkit commented Mar 4, 2020

Diff:
diff --git a/friendica_dev-fpm-alpine/Dockerfile b/friendica_dev-fpm-alpine/Dockerfile
index 524cb07..6bf60ad 100644
--- a/friendica_dev-fpm-alpine/Dockerfile
+++ b/friendica_dev-fpm-alpine/Dockerfile
@@ -52,7 +52,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install APCu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_dev-fpm-alpine/cron.sh b/friendica_dev-fpm-alpine/cron.sh
index 3f03a41..c2fd1c2 100755
--- a/friendica_dev-fpm-alpine/cron.sh
+++ b/friendica_dev-fpm-alpine/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev-fpm/Dockerfile b/friendica_dev-fpm/Dockerfile
index 1f0dfb1..7590942 100644
--- a/friendica_dev-fpm/Dockerfile
+++ b/friendica_dev-fpm/Dockerfile
@@ -60,7 +60,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_dev-fpm/cron.sh b/friendica_dev-fpm/cron.sh
index 3f03a41..c2fd1c2 100755
--- a/friendica_dev-fpm/cron.sh
+++ b/friendica_dev-fpm/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev/Dockerfile b/friendica_dev/Dockerfile
index 0ee76a3..e52cfbd 100644
--- a/friendica_dev/Dockerfile
+++ b/friendica_dev/Dockerfile
@@ -60,7 +60,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_dev/cron.sh b/friendica_dev/cron.sh
index 3f03a41..c2fd1c2 100755
--- a/friendica_dev/cron.sh
+++ b/friendica_dev/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_stable-fpm-alpine/Dockerfile b/friendica_stable-fpm-alpine/Dockerfile
index 6b26dbf..8a29480 100644
--- a/friendica_stable-fpm-alpine/Dockerfile
+++ b/friendica_stable-fpm-alpine/Dockerfile
@@ -52,7 +52,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install APCu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_stable-fpm-alpine/cron.sh b/friendica_stable-fpm-alpine/cron.sh
index 3f03a41..c2fd1c2 100755
--- a/friendica_stable-fpm-alpine/cron.sh
+++ b/friendica_stable-fpm-alpine/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_stable-fpm/Dockerfile b/friendica_stable-fpm/Dockerfile
index c86e09a..3262ead 100644
--- a/friendica_stable-fpm/Dockerfile
+++ b/friendica_stable-fpm/Dockerfile
@@ -60,7 +60,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_stable-fpm/cron.sh b/friendica_stable-fpm/cron.sh
index 3f03a41..c2fd1c2 100755
--- a/friendica_stable-fpm/cron.sh
+++ b/friendica_stable-fpm/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_stable/Dockerfile b/friendica_stable/Dockerfile
index ac047bd..655a7ad 100644
--- a/friendica_stable/Dockerfile
+++ b/friendica_stable/Dockerfile
@@ -60,7 +60,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_stable/cron.sh b/friendica_stable/cron.sh
index 3f03a41..c2fd1c2 100755
--- a/friendica_stable/cron.sh
+++ b/friendica_stable/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi

@yosifkit
Copy link
Member

yosifkit commented Mar 5, 2020

sh is not a proper "init" (to reap zombies) for a container since it will intercept signals and not forward them to your php process. We recommend using tini (exec tini php ...). This could be installed in the image or just a documentation detail to run the container with --init

@nupplaphil
Copy link
Contributor Author

@yosifkit thanks to @valvin1 , we now use tini for executing our daemon. Thanks for your hint :-)

@nupplaphil nupplaphil changed the title Friendica Bugfixing Friendica Bugfixing & 2020.03-rc release Mar 10, 2020
@yosifkit
Copy link
Member

Diff:
diff --git a/_bashbrew-arches b/_bashbrew-arches
index a85482a..f5c96a1 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -16,6 +16,24 @@ friendica:dev-fpm-alpine @ arm32v7
 friendica:dev-fpm-alpine @ arm64v8
 friendica:dev-fpm-alpine @ i386
 friendica:dev-fpm-alpine @ ppc64le
+friendica:rc @ amd64
+friendica:rc @ arm32v5
+friendica:rc @ arm32v7
+friendica:rc @ arm64v8
+friendica:rc @ i386
+friendica:rc @ ppc64le
+friendica:rc-fpm @ amd64
+friendica:rc-fpm @ arm32v5
+friendica:rc-fpm @ arm32v7
+friendica:rc-fpm @ arm64v8
+friendica:rc-fpm @ i386
+friendica:rc-fpm @ ppc64le
+friendica:rc-fpm-alpine @ amd64
+friendica:rc-fpm-alpine @ arm32v6
+friendica:rc-fpm-alpine @ arm32v7
+friendica:rc-fpm-alpine @ arm64v8
+friendica:rc-fpm-alpine @ i386
+friendica:rc-fpm-alpine @ ppc64le
 friendica:stable @ amd64
 friendica:stable @ arm32v5
 friendica:stable @ arm32v7
diff --git a/_bashbrew-list b/_bashbrew-list
index 7fe1eb1..ac20c38 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -6,6 +6,10 @@ friendica:2020.03-dev
 friendica:2020.03-dev-apache
 friendica:2020.03-dev-fpm
 friendica:2020.03-dev-fpm-alpine
+friendica:2020.03-rc
+friendica:2020.03-rc-apache
+friendica:2020.03-rc-fpm
+friendica:2020.03-rc-fpm-alpine
 friendica:apache
 friendica:dev
 friendica:dev-apache
@@ -14,6 +18,10 @@ friendica:dev-fpm-alpine
 friendica:fpm
 friendica:fpm-alpine
 friendica:latest
+friendica:rc
+friendica:rc-apache
+friendica:rc-fpm
+friendica:rc-fpm-alpine
 friendica:stable
 friendica:stable-apache
 friendica:stable-fpm
diff --git a/friendica_dev-fpm-alpine/Dockerfile b/friendica_dev-fpm-alpine/Dockerfile
index 524cb07..77c186d 100644
--- a/friendica_dev-fpm-alpine/Dockerfile
+++ b/friendica_dev-fpm-alpine/Dockerfile
@@ -8,7 +8,8 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
-        shadow;
+        shadow \
+        tini;
 
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
@@ -52,7 +53,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install APCu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_dev-fpm-alpine/cron.sh b/friendica_dev-fpm-alpine/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_dev-fpm-alpine/cron.sh
+++ b/friendica_dev-fpm-alpine/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev-fpm/Dockerfile b/friendica_dev-fpm/Dockerfile
index 1f0dfb1..cdfd485 100644
--- a/friendica_dev-fpm/Dockerfile
+++ b/friendica_dev-fpm/Dockerfile
@@ -11,9 +11,20 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
+# For tini installation
+        gnupg dirmngr \
     ; \
     rm -rf /var/lib/apt/lists/*;
 
+# Add tini for reaping processes
+ENV TINI_VERSION v0.18.0
+RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \
+ && curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH} \
+ && curl -L -o /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH}.asc \
+ && gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
+ && gpg --batch --verify /tini.asc /sbin/tini \
+ && chmod +x /sbin/tini
+
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
 RUN set -ex; \
@@ -60,7 +71,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_dev-fpm/cron.sh b/friendica_dev-fpm/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_dev-fpm/cron.sh
+++ b/friendica_dev-fpm/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev/Dockerfile b/friendica_dev/Dockerfile
index 0ee76a3..127cea3 100644
--- a/friendica_dev/Dockerfile
+++ b/friendica_dev/Dockerfile
@@ -11,9 +11,20 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
+# For tini installation
+        gnupg dirmngr \
     ; \
     rm -rf /var/lib/apt/lists/*;
 
+# Add tini for reaping processes
+ENV TINI_VERSION v0.18.0
+RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \
+ && curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH} \
+ && curl -L -o /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH}.asc \
+ && gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
+ && gpg --batch --verify /tini.asc /sbin/tini \
+ && chmod +x /sbin/tini
+
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
 RUN set -ex; \
@@ -60,7 +71,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_dev/cron.sh b/friendica_dev/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_dev/cron.sh
+++ b/friendica_dev/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev-fpm-alpine/Dockerfile b/friendica_rc-fpm-alpine/Dockerfile
similarity index 95%
copy from friendica_dev-fpm-alpine/Dockerfile
copy to friendica_rc-fpm-alpine/Dockerfile
index 524cb07..da5b294 100644
--- a/friendica_dev-fpm-alpine/Dockerfile
+++ b/friendica_rc-fpm-alpine/Dockerfile
@@ -8,7 +8,8 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
-        shadow;
+        shadow \
+        tini;
 
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
@@ -52,7 +53,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install APCu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
@@ -97,8 +98,8 @@ RUN set -ex; \
 VOLUME /var/www/html
 
 
-ENV FRIENDICA_VERSION 2020.03-dev
-ENV FRIENDICA_ADDONS 2020.03-dev
+ENV FRIENDICA_VERSION 2020.03-rc
+ENV FRIENDICA_ADDONS 2020.03-rc
 
 
 COPY *.sh upgrade.exclude /
diff --git a/friendica_dev-fpm-alpine/config/00apcu.config.php b/friendica_rc-fpm-alpine/config/00apcu.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/00apcu.config.php
copy to friendica_rc-fpm-alpine/config/00apcu.config.php
diff --git a/friendica_dev-fpm-alpine/config/01redis.config.php b/friendica_rc-fpm-alpine/config/01redis.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/01redis.config.php
copy to friendica_rc-fpm-alpine/config/01redis.config.php
diff --git a/friendica_dev-fpm-alpine/config/zz-docker.config.php b/friendica_rc-fpm-alpine/config/zz-docker.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/zz-docker.config.php
copy to friendica_rc-fpm-alpine/config/zz-docker.config.php
diff --git a/friendica_dev/cron.sh b/friendica_rc-fpm-alpine/cron.sh
similarity index 83%
copy from friendica_dev/cron.sh
copy to friendica_rc-fpm-alpine/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_dev/cron.sh
+++ b/friendica_rc-fpm-alpine/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev-fpm-alpine/entrypoint-dev.sh b/friendica_rc-fpm-alpine/entrypoint-dev.sh
similarity index 100%
copy from friendica_dev-fpm-alpine/entrypoint-dev.sh
copy to friendica_rc-fpm-alpine/entrypoint-dev.sh
diff --git a/friendica_dev-fpm-alpine/entrypoint.sh b/friendica_rc-fpm-alpine/entrypoint.sh
similarity index 100%
copy from friendica_dev-fpm-alpine/entrypoint.sh
copy to friendica_rc-fpm-alpine/entrypoint.sh
diff --git a/friendica_dev-fpm-alpine/upgrade.exclude b/friendica_rc-fpm-alpine/upgrade.exclude
similarity index 100%
copy from friendica_dev-fpm-alpine/upgrade.exclude
copy to friendica_rc-fpm-alpine/upgrade.exclude
diff --git a/friendica_dev-fpm/Dockerfile b/friendica_rc-fpm/Dockerfile
similarity index 82%
copy from friendica_dev-fpm/Dockerfile
copy to friendica_rc-fpm/Dockerfile
index 1f0dfb1..1841e4e 100644
--- a/friendica_dev-fpm/Dockerfile
+++ b/friendica_rc-fpm/Dockerfile
@@ -11,9 +11,20 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
+# For tini installation
+        gnupg dirmngr \
     ; \
     rm -rf /var/lib/apt/lists/*;
 
+# Add tini for reaping processes
+ENV TINI_VERSION v0.18.0
+RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \
+ && curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH} \
+ && curl -L -o /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH}.asc \
+ && gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
+ && gpg --batch --verify /tini.asc /sbin/tini \
+ && chmod +x /sbin/tini
+
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
 RUN set -ex; \
@@ -60,7 +71,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
@@ -110,8 +121,8 @@ RUN set -ex; \
 VOLUME /var/www/html
 
 
-ENV FRIENDICA_VERSION 2020.03-dev
-ENV FRIENDICA_ADDONS 2020.03-dev
+ENV FRIENDICA_VERSION 2020.03-rc
+ENV FRIENDICA_ADDONS 2020.03-rc
 
 
 COPY *.sh upgrade.exclude /
diff --git a/friendica_dev-fpm-alpine/config/00apcu.config.php b/friendica_rc-fpm/config/00apcu.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/00apcu.config.php
copy to friendica_rc-fpm/config/00apcu.config.php
diff --git a/friendica_dev-fpm-alpine/config/01redis.config.php b/friendica_rc-fpm/config/01redis.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/01redis.config.php
copy to friendica_rc-fpm/config/01redis.config.php
diff --git a/friendica_dev-fpm-alpine/config/zz-docker.config.php b/friendica_rc-fpm/config/zz-docker.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/zz-docker.config.php
copy to friendica_rc-fpm/config/zz-docker.config.php
diff --git a/friendica_dev/cron.sh b/friendica_rc-fpm/cron.sh
similarity index 83%
copy from friendica_dev/cron.sh
copy to friendica_rc-fpm/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_dev/cron.sh
+++ b/friendica_rc-fpm/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev-fpm-alpine/entrypoint-dev.sh b/friendica_rc-fpm/entrypoint-dev.sh
similarity index 100%
copy from friendica_dev-fpm-alpine/entrypoint-dev.sh
copy to friendica_rc-fpm/entrypoint-dev.sh
diff --git a/friendica_dev-fpm-alpine/entrypoint.sh b/friendica_rc-fpm/entrypoint.sh
similarity index 100%
copy from friendica_dev-fpm-alpine/entrypoint.sh
copy to friendica_rc-fpm/entrypoint.sh
diff --git a/friendica_dev-fpm-alpine/upgrade.exclude b/friendica_rc-fpm/upgrade.exclude
similarity index 100%
copy from friendica_dev-fpm-alpine/upgrade.exclude
copy to friendica_rc-fpm/upgrade.exclude
diff --git a/friendica_dev/Dockerfile b/friendica_rc/Dockerfile
similarity index 83%
copy from friendica_dev/Dockerfile
copy to friendica_rc/Dockerfile
index 0ee76a3..11b4f43 100644
--- a/friendica_dev/Dockerfile
+++ b/friendica_rc/Dockerfile
@@ -11,9 +11,20 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
+# For tini installation
+        gnupg dirmngr \
     ; \
     rm -rf /var/lib/apt/lists/*;
 
+# Add tini for reaping processes
+ENV TINI_VERSION v0.18.0
+RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \
+ && curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH} \
+ && curl -L -o /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH}.asc \
+ && gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
+ && gpg --batch --verify /tini.asc /sbin/tini \
+ && chmod +x /sbin/tini
+
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
 RUN set -ex; \
@@ -60,7 +71,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
@@ -119,8 +130,8 @@ RUN set -ex;\
     } > /etc/apache2/conf-available/remoteip.conf;\
     a2enconf remoteip
 
-ENV FRIENDICA_VERSION 2020.03-dev
-ENV FRIENDICA_ADDONS 2020.03-dev
+ENV FRIENDICA_VERSION 2020.03-rc
+ENV FRIENDICA_ADDONS 2020.03-rc
 
 
 COPY *.sh upgrade.exclude /
diff --git a/friendica_dev-fpm-alpine/config/00apcu.config.php b/friendica_rc/config/00apcu.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/00apcu.config.php
copy to friendica_rc/config/00apcu.config.php
diff --git a/friendica_dev-fpm-alpine/config/01redis.config.php b/friendica_rc/config/01redis.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/01redis.config.php
copy to friendica_rc/config/01redis.config.php
diff --git a/friendica_dev-fpm-alpine/config/zz-docker.config.php b/friendica_rc/config/zz-docker.config.php
similarity index 100%
copy from friendica_dev-fpm-alpine/config/zz-docker.config.php
copy to friendica_rc/config/zz-docker.config.php
diff --git a/friendica_dev/cron.sh b/friendica_rc/cron.sh
similarity index 83%
copy from friendica_dev/cron.sh
copy to friendica_rc/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_dev/cron.sh
+++ b/friendica_rc/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_dev-fpm-alpine/entrypoint-dev.sh b/friendica_rc/entrypoint-dev.sh
similarity index 100%
copy from friendica_dev-fpm-alpine/entrypoint-dev.sh
copy to friendica_rc/entrypoint-dev.sh
diff --git a/friendica_dev-fpm-alpine/entrypoint.sh b/friendica_rc/entrypoint.sh
similarity index 100%
copy from friendica_dev-fpm-alpine/entrypoint.sh
copy to friendica_rc/entrypoint.sh
diff --git a/friendica_dev-fpm-alpine/upgrade.exclude b/friendica_rc/upgrade.exclude
similarity index 100%
copy from friendica_dev-fpm-alpine/upgrade.exclude
copy to friendica_rc/upgrade.exclude
diff --git a/friendica_stable-fpm-alpine/Dockerfile b/friendica_stable-fpm-alpine/Dockerfile
index 6b26dbf..5ac077b 100644
--- a/friendica_stable-fpm-alpine/Dockerfile
+++ b/friendica_stable-fpm-alpine/Dockerfile
@@ -8,7 +8,8 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
-        shadow;
+        shadow \
+        tini;
 
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
@@ -52,7 +53,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install APCu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_stable-fpm-alpine/cron.sh b/friendica_stable-fpm-alpine/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_stable-fpm-alpine/cron.sh
+++ b/friendica_stable-fpm-alpine/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_stable-fpm/Dockerfile b/friendica_stable-fpm/Dockerfile
index c86e09a..bf25cba 100644
--- a/friendica_stable-fpm/Dockerfile
+++ b/friendica_stable-fpm/Dockerfile
@@ -11,9 +11,20 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
+# For tini installation
+        gnupg dirmngr \
     ; \
     rm -rf /var/lib/apt/lists/*;
 
+# Add tini for reaping processes
+ENV TINI_VERSION v0.18.0
+RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \
+ && curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH} \
+ && curl -L -o /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH}.asc \
+ && gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
+ && gpg --batch --verify /tini.asc /sbin/tini \
+ && chmod +x /sbin/tini
+
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
 RUN set -ex; \
@@ -60,7 +71,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_stable-fpm/cron.sh b/friendica_stable-fpm/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_stable-fpm/cron.sh
+++ b/friendica_stable-fpm/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi
diff --git a/friendica_stable/Dockerfile b/friendica_stable/Dockerfile
index ac047bd..a9134b4 100644
--- a/friendica_stable/Dockerfile
+++ b/friendica_stable/Dockerfile
@@ -11,9 +11,20 @@ RUN set -ex; \
         git \
 # For mail() support
         ssmtp \
+# For tini installation
+        gnupg dirmngr \
     ; \
     rm -rf /var/lib/apt/lists/*;
 
+# Add tini for reaping processes
+ENV TINI_VERSION v0.18.0
+RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \
+ && curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH} \
+ && curl -L -o /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${BUILD_ARCH}.asc \
+ && gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
+ && gpg --batch --verify /tini.asc /sbin/tini \
+ && chmod +x /sbin/tini
+
 # install the PHP extensions we need
 # see https://friendi.ca/resources/requirements/
 RUN set -ex; \
@@ -60,7 +71,7 @@ RUN set -ex; \
 # pecl will claim success even if one install fails, so we need to perform each install separately
     pecl install apcu-5.1.18; \
     pecl install memcached-3.1.5; \
-    pecl install redis-5.1.1; \
+    pecl install redis-5.2.0; \
     pecl install imagick-3.4.4; \
     \
     docker-php-ext-enable \
diff --git a/friendica_stable/cron.sh b/friendica_stable/cron.sh
index 3f03a41..55be04a 100755
--- a/friendica_stable/cron.sh
+++ b/friendica_stable/cron.sh
@@ -7,7 +7,7 @@ done
 
 echo "Waiting for MySQL $MYSQL_HOST initialization..."
 if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then
-  exec php /var/www/html/bin/daemon.php -f start
+  exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start
 else
   echo "[ERROR] Waited 300 seconds, no response" >&2
 fi

@yosifkit
Copy link
Member

Build test of #7573; 0aa92b5; amd64 (friendica):

$ bashbrew build friendica:2019.12-apache
Building bashbrew/cache:4927e4428a803a053560b63a75a6be41ac789b0bb988235b28ff88ac16872226 (friendica:2019.12-apache)
Tagging friendica:2019.12-apache
Tagging friendica:apache
Tagging friendica:stable-apache
Tagging friendica:2019.12
Tagging friendica:latest
Tagging friendica:stable

$ test/run.sh friendica:2019.12-apache
testing friendica:2019.12-apache
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2019.12-fpm
Building bashbrew/cache:50550be92cc9993b53a56fcadc703eba7cbffcf1d39b6c498249d02e8f10fdf4 (friendica:2019.12-fpm)
Tagging friendica:2019.12-fpm
Tagging friendica:fpm
Tagging friendica:stable-fpm

$ test/run.sh friendica:2019.12-fpm
testing friendica:2019.12-fpm
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2019.12-fpm-alpine
Building bashbrew/cache:f224f9942e47d1434dcb8df48f077f35326c5c1c0a746e2e010a186dbf715427 (friendica:2019.12-fpm-alpine)
Tagging friendica:2019.12-fpm-alpine
Tagging friendica:fpm-alpine
Tagging friendica:stable-fpm-alpine

$ test/run.sh friendica:2019.12-fpm-alpine
testing friendica:2019.12-fpm-alpine
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2020.03-dev-apache
Building bashbrew/cache:5ef8e43d6d8c9567e98759ce37fed08a9f2cdc7f000ffdc37e09129a438960d1 (friendica:2020.03-dev-apache)
Tagging friendica:2020.03-dev-apache
Tagging friendica:dev-apache
Tagging friendica:2020.03-dev
Tagging friendica:dev

$ test/run.sh friendica:2020.03-dev-apache
testing friendica:2020.03-dev-apache
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2020.03-dev-fpm
Building bashbrew/cache:f87b4c7b746c146a01d506cfc056172469f7fa962f5b37970f90b20a7ba1555f (friendica:2020.03-dev-fpm)
Tagging friendica:2020.03-dev-fpm
Tagging friendica:dev-fpm

$ test/run.sh friendica:2020.03-dev-fpm
testing friendica:2020.03-dev-fpm
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2020.03-dev-fpm-alpine
Building bashbrew/cache:732c58018509a7e1cb2c9cd943a0e5b78e10309394c7ba47e4caf9da53b860c8 (friendica:2020.03-dev-fpm-alpine)
Tagging friendica:2020.03-dev-fpm-alpine
Tagging friendica:dev-fpm-alpine

$ test/run.sh friendica:2020.03-dev-fpm-alpine
testing friendica:2020.03-dev-fpm-alpine
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2020.03-rc-apache
Building bashbrew/cache:2f6dfee0c276b5812f9435c86770b2f2e48d9ec0f48e5964e4f518478443c32c (friendica:2020.03-rc-apache)
Tagging friendica:2020.03-rc-apache
Tagging friendica:rc-apache
Tagging friendica:2020.03-rc
Tagging friendica:rc

$ test/run.sh friendica:2020.03-rc-apache
testing friendica:2020.03-rc-apache
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2020.03-rc-fpm
Building bashbrew/cache:e758d4b97aafbb0dfd976d70d3e7a4d53a59a022a5cd3aada755fc4e92e8b38b (friendica:2020.03-rc-fpm)
Tagging friendica:2020.03-rc-fpm
Tagging friendica:rc-fpm

$ test/run.sh friendica:2020.03-rc-fpm
testing friendica:2020.03-rc-fpm
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build friendica:2020.03-rc-fpm-alpine
Building bashbrew/cache:8c8b7535ad03a9a74c1ff08810d4e8361e35bfda6281edac3dc20093809c1871 (friendica:2020.03-rc-fpm-alpine)
Tagging friendica:2020.03-rc-fpm-alpine
Tagging friendica:rc-fpm-alpine

$ test/run.sh friendica:2020.03-rc-fpm-alpine
testing friendica:2020.03-rc-fpm-alpine
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed

@yosifkit yosifkit merged commit 38620a8 into docker-library:master Mar 10, 2020
@nupplaphil nupplaphil deleted the friendica_fixings branch March 11, 2020 05:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants