From 8de8251f810c1cefd2c0fa24fb83767547510a9a Mon Sep 17 00:00:00 2001 From: GitHub Workflow Date: Fri, 18 Jun 2021 01:36:03 +0000 Subject: [PATCH 01/22] Runs update.sh --- 2020.09/apache/Dockerfile | 2 +- 2020.09/fpm-alpine/Dockerfile | 2 +- 2020.09/fpm/Dockerfile | 2 +- 2021.01/apache/Dockerfile | 2 +- 2021.01/fpm-alpine/Dockerfile | 2 +- 2021.01/fpm/Dockerfile | 2 +- 2021.04/apache/Dockerfile | 2 +- 2021.04/fpm-alpine/Dockerfile | 2 +- 2021.04/fpm/Dockerfile | 2 +- 2021.06-dev/apache/Dockerfile | 2 +- 2021.06-dev/fpm-alpine/Dockerfile | 2 +- 2021.06-dev/fpm/Dockerfile | 2 +- 2021.06-rc/apache/Dockerfile | 2 +- 2021.06-rc/fpm-alpine/Dockerfile | 2 +- 2021.06-rc/fpm/Dockerfile | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/2020.09/apache/Dockerfile b/2020.09/apache/Dockerfile index f9d1b1e..343b2a4 100644 --- a/2020.09/apache/Dockerfile +++ b/2020.09/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2020.09/fpm-alpine/Dockerfile b/2020.09/fpm-alpine/Dockerfile index 04bd150..d8e1fbd 100644 --- a/2020.09/fpm-alpine/Dockerfile +++ b/2020.09/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2020.09/fpm/Dockerfile b/2020.09/fpm/Dockerfile index 742d659..348f34b 100644 --- a/2020.09/fpm/Dockerfile +++ b/2020.09/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.01/apache/Dockerfile b/2021.01/apache/Dockerfile index e4f47da..31346ad 100644 --- a/2021.01/apache/Dockerfile +++ b/2021.01/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.01/fpm-alpine/Dockerfile b/2021.01/fpm-alpine/Dockerfile index 9dfc0a3..2dfc46c 100644 --- a/2021.01/fpm-alpine/Dockerfile +++ b/2021.01/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.01/fpm/Dockerfile b/2021.01/fpm/Dockerfile index 9920254..62fbf3d 100644 --- a/2021.01/fpm/Dockerfile +++ b/2021.01/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 94bb3bb..2bb120d 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 976ec36..327729d 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index cc46715..77cd06c 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.06-dev/apache/Dockerfile b/2021.06-dev/apache/Dockerfile index 368326e..7d3cb45 100644 --- a/2021.06-dev/apache/Dockerfile +++ b/2021.06-dev/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.06-dev/fpm-alpine/Dockerfile b/2021.06-dev/fpm-alpine/Dockerfile index 53be791..1abe246 100644 --- a/2021.06-dev/fpm-alpine/Dockerfile +++ b/2021.06-dev/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.06-dev/fpm/Dockerfile b/2021.06-dev/fpm/Dockerfile index d0c66b6..bb3761f 100644 --- a/2021.06-dev/fpm/Dockerfile +++ b/2021.06-dev/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.06-rc/apache/Dockerfile b/2021.06-rc/apache/Dockerfile index a4e8d56..adc0f3f 100644 --- a/2021.06-rc/apache/Dockerfile +++ b/2021.06-rc/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.06-rc/fpm-alpine/Dockerfile b/2021.06-rc/fpm-alpine/Dockerfile index d00af2a..02feb9b 100644 --- a/2021.06-rc/fpm-alpine/Dockerfile +++ b/2021.06-rc/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.06-rc/fpm/Dockerfile b/2021.06-rc/fpm/Dockerfile index 43d2ede..9cc3e56 100644 --- a/2021.06-rc/fpm/Dockerfile +++ b/2021.06-rc/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.4.4; \ + pecl install imagick-3.5.0; \ \ docker-php-ext-enable \ apcu \ From 31e26557ac5be8b6051d3951ede13aad9777bb6a Mon Sep 17 00:00:00 2001 From: GitHub Workflow Date: Mon, 5 Jul 2021 01:28:00 +0000 Subject: [PATCH 02/22] Runs update.sh --- 2021.07/apache/Dockerfile | 156 ++++++++++++++++++ 2021.07/apache/config/00apcu.config.php | 12 ++ 2021.07/apache/config/01redis.config.php | 15 ++ 2021.07/apache/config/zz-docker.config.php | 68 ++++++++ 2021.07/apache/cron.sh | 14 ++ 2021.07/apache/entrypoint.sh | 145 ++++++++++++++++ 2021.07/apache/setup_msmtp.sh | 38 +++++ 2021.07/apache/upgrade.exclude | 10 ++ 2021.07/fpm-alpine/Dockerfile | 122 ++++++++++++++ 2021.07/fpm-alpine/config/00apcu.config.php | 12 ++ 2021.07/fpm-alpine/config/01redis.config.php | 15 ++ .../fpm-alpine/config/zz-docker.config.php | 68 ++++++++ 2021.07/fpm-alpine/cron.sh | 14 ++ 2021.07/fpm-alpine/entrypoint.sh | 145 ++++++++++++++++ 2021.07/fpm-alpine/setup_msmtp.sh | 38 +++++ 2021.07/fpm-alpine/upgrade.exclude | 10 ++ 2021.07/fpm/Dockerfile | 147 +++++++++++++++++ 2021.07/fpm/config/00apcu.config.php | 12 ++ 2021.07/fpm/config/01redis.config.php | 15 ++ 2021.07/fpm/config/zz-docker.config.php | 68 ++++++++ 2021.07/fpm/cron.sh | 14 ++ 2021.07/fpm/entrypoint.sh | 145 ++++++++++++++++ 2021.07/fpm/setup_msmtp.sh | 38 +++++ 2021.07/fpm/upgrade.exclude | 10 ++ 2021.09-dev/apache/Dockerfile | 143 ++++++++++++++++ 2021.09-dev/apache/config/00apcu.config.php | 12 ++ 2021.09-dev/apache/config/01redis.config.php | 15 ++ .../apache/config/zz-docker.config.php | 68 ++++++++ 2021.09-dev/apache/cron.sh | 14 ++ 2021.09-dev/apache/entrypoint-dev.sh | 69 ++++++++ 2021.09-dev/apache/entrypoint.sh | 145 ++++++++++++++++ 2021.09-dev/apache/setup_msmtp.sh | 38 +++++ 2021.09-dev/apache/upgrade.exclude | 10 ++ 2021.09-dev/fpm-alpine/Dockerfile | 109 ++++++++++++ .../fpm-alpine/config/00apcu.config.php | 12 ++ .../fpm-alpine/config/01redis.config.php | 15 ++ .../fpm-alpine/config/zz-docker.config.php | 68 ++++++++ 2021.09-dev/fpm-alpine/cron.sh | 14 ++ 2021.09-dev/fpm-alpine/entrypoint-dev.sh | 69 ++++++++ 2021.09-dev/fpm-alpine/entrypoint.sh | 145 ++++++++++++++++ 2021.09-dev/fpm-alpine/setup_msmtp.sh | 38 +++++ 2021.09-dev/fpm-alpine/upgrade.exclude | 10 ++ 2021.09-dev/fpm/Dockerfile | 134 +++++++++++++++ 2021.09-dev/fpm/config/00apcu.config.php | 12 ++ 2021.09-dev/fpm/config/01redis.config.php | 15 ++ 2021.09-dev/fpm/config/zz-docker.config.php | 68 ++++++++ 2021.09-dev/fpm/cron.sh | 14 ++ 2021.09-dev/fpm/entrypoint-dev.sh | 69 ++++++++ 2021.09-dev/fpm/entrypoint.sh | 145 ++++++++++++++++ 2021.09-dev/fpm/setup_msmtp.sh | 38 +++++ 2021.09-dev/fpm/upgrade.exclude | 10 ++ develop.txt | 2 +- latest.txt | 2 +- 53 files changed, 2832 insertions(+), 2 deletions(-) create mode 100644 2021.07/apache/Dockerfile create mode 100644 2021.07/apache/config/00apcu.config.php create mode 100644 2021.07/apache/config/01redis.config.php create mode 100644 2021.07/apache/config/zz-docker.config.php create mode 100755 2021.07/apache/cron.sh create mode 100755 2021.07/apache/entrypoint.sh create mode 100644 2021.07/apache/setup_msmtp.sh create mode 100644 2021.07/apache/upgrade.exclude create mode 100644 2021.07/fpm-alpine/Dockerfile create mode 100644 2021.07/fpm-alpine/config/00apcu.config.php create mode 100644 2021.07/fpm-alpine/config/01redis.config.php create mode 100644 2021.07/fpm-alpine/config/zz-docker.config.php create mode 100755 2021.07/fpm-alpine/cron.sh create mode 100755 2021.07/fpm-alpine/entrypoint.sh create mode 100644 2021.07/fpm-alpine/setup_msmtp.sh create mode 100644 2021.07/fpm-alpine/upgrade.exclude create mode 100644 2021.07/fpm/Dockerfile create mode 100644 2021.07/fpm/config/00apcu.config.php create mode 100644 2021.07/fpm/config/01redis.config.php create mode 100644 2021.07/fpm/config/zz-docker.config.php create mode 100755 2021.07/fpm/cron.sh create mode 100755 2021.07/fpm/entrypoint.sh create mode 100644 2021.07/fpm/setup_msmtp.sh create mode 100644 2021.07/fpm/upgrade.exclude create mode 100644 2021.09-dev/apache/Dockerfile create mode 100644 2021.09-dev/apache/config/00apcu.config.php create mode 100644 2021.09-dev/apache/config/01redis.config.php create mode 100644 2021.09-dev/apache/config/zz-docker.config.php create mode 100755 2021.09-dev/apache/cron.sh create mode 100755 2021.09-dev/apache/entrypoint-dev.sh create mode 100755 2021.09-dev/apache/entrypoint.sh create mode 100644 2021.09-dev/apache/setup_msmtp.sh create mode 100644 2021.09-dev/apache/upgrade.exclude create mode 100644 2021.09-dev/fpm-alpine/Dockerfile create mode 100644 2021.09-dev/fpm-alpine/config/00apcu.config.php create mode 100644 2021.09-dev/fpm-alpine/config/01redis.config.php create mode 100644 2021.09-dev/fpm-alpine/config/zz-docker.config.php create mode 100755 2021.09-dev/fpm-alpine/cron.sh create mode 100755 2021.09-dev/fpm-alpine/entrypoint-dev.sh create mode 100755 2021.09-dev/fpm-alpine/entrypoint.sh create mode 100644 2021.09-dev/fpm-alpine/setup_msmtp.sh create mode 100644 2021.09-dev/fpm-alpine/upgrade.exclude create mode 100644 2021.09-dev/fpm/Dockerfile create mode 100644 2021.09-dev/fpm/config/00apcu.config.php create mode 100644 2021.09-dev/fpm/config/01redis.config.php create mode 100644 2021.09-dev/fpm/config/zz-docker.config.php create mode 100755 2021.09-dev/fpm/cron.sh create mode 100755 2021.09-dev/fpm/entrypoint-dev.sh create mode 100755 2021.09-dev/fpm/entrypoint.sh create mode 100644 2021.09-dev/fpm/setup_msmtp.sh create mode 100644 2021.09-dev/fpm/upgrade.exclude diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile new file mode 100644 index 0000000..d5c927e --- /dev/null +++ b/2021.07/apache/Dockerfile @@ -0,0 +1,156 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.3-apache-buster + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + msmtp \ +# For tini installation + gnupg dirmngr \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# Add tini for reaping processes +ENV TINI_VERSION v0.19.0 +RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ + && mkdir ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && 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; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + mariadb-client \ + bash \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmagick++-dev \ + libmemcached-dev \ + libgraphicsmagick1-dev \ + libfreetype6-dev \ + librsvg2-2 \ + libzip-dev \ + libldap2-dev \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-configure ldap \ + --with-libdir=lib/$debMultiarch/ \ + ;\ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + ctype \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install apcu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.0; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { print $3 }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + +RUN set -ex;\ + a2enmod rewrite remoteip ;\ + {\ + echo RemoteIPHeader X-Real-IP ;\ + echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ + echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ + echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ + } > /etc/apache2/conf-available/remoteip.conf;\ + a2enconf remoteip + +ENV FRIENDICA_VERSION "2021.07" +ENV FRIENDICA_ADDONS "2021.07" + +RUN set -ex; \ + curl -fsSL -o friendica.tar.gz \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + tar -xzf friendica.tar.gz -C /usr/src/; \ + rm friendica.tar.gz; \ + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ + chmod 777 /usr/src/friendica/view/smarty3; \ + curl -fsSL -o friendica_addons.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + mkdir -p /usr/src/friendica/proxy; \ + mkdir -p /usr/src/friendica/addon; \ + tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica_addons.tar.gz; + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["apache2-foreground"] diff --git a/2021.07/apache/config/00apcu.config.php b/2021.07/apache/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.07/apache/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.07/apache/config/01redis.config.php b/2021.07/apache/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.07/apache/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.07/apache/config/zz-docker.config.php b/2021.07/apache/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.07/apache/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.07/apache/cron.sh b/2021.07/apache/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.07/apache/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.07/apache/entrypoint.sh b/2021.07/apache/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.07/apache/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.07/apache/setup_msmtp.sh b/2021.07/apache/setup_msmtp.sh new file mode 100644 index 0000000..b90c42c --- /dev/null +++ b/2021.07/apache/setup_msmtp.sh @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + echo "Setup finished" +fi diff --git a/2021.07/apache/upgrade.exclude b/2021.07/apache/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.07/apache/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile new file mode 100644 index 0000000..f7d1081 --- /dev/null +++ b/2021.07/fpm-alpine/Dockerfile @@ -0,0 +1,122 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template +FROM php:7.3-fpm-alpine + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + apk add --no-cache \ + rsync \ + git \ +# For mail() support + msmtp \ + shadow \ + tini; + +# install the PHP extensions we need +# see https://friendi.ca/resources/requirements/ +RUN set -ex; \ + \ + apk add --no-cache --virtual .build-deps \ + mariadb-client \ + bash \ + $PHPIZE_DEPS \ + libpng-dev \ + libjpeg-turbo-dev \ + imagemagick-dev \ + libtool \ + libmemcached-dev \ + cyrus-sasl-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + librsvg \ + pcre-dev \ + libzip-dev \ + icu-dev \ + openldap-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install APCu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.0; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ + apk del --no-network .build-deps; + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +ENV FRIENDICA_VERSION "2021.07" +ENV FRIENDICA_ADDONS "2021.07" + +RUN set -ex; \ + curl -fsSL -o friendica.tar.gz \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + tar -xzf friendica.tar.gz -C /usr/src/; \ + rm friendica.tar.gz; \ + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ + chmod 777 /usr/src/friendica/view/smarty3; \ + curl -fsSL -o friendica_addons.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + mkdir -p /usr/src/friendica/proxy; \ + mkdir -p /usr/src/friendica/addon; \ + tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica_addons.tar.gz; + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/2021.07/fpm-alpine/config/00apcu.config.php b/2021.07/fpm-alpine/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.07/fpm-alpine/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.07/fpm-alpine/config/01redis.config.php b/2021.07/fpm-alpine/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.07/fpm-alpine/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.07/fpm-alpine/config/zz-docker.config.php b/2021.07/fpm-alpine/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.07/fpm-alpine/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.07/fpm-alpine/cron.sh b/2021.07/fpm-alpine/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.07/fpm-alpine/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.07/fpm-alpine/entrypoint.sh b/2021.07/fpm-alpine/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.07/fpm-alpine/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.07/fpm-alpine/setup_msmtp.sh b/2021.07/fpm-alpine/setup_msmtp.sh new file mode 100644 index 0000000..b90c42c --- /dev/null +++ b/2021.07/fpm-alpine/setup_msmtp.sh @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + echo "Setup finished" +fi diff --git a/2021.07/fpm-alpine/upgrade.exclude b/2021.07/fpm-alpine/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.07/fpm-alpine/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile new file mode 100644 index 0000000..63b2c1b --- /dev/null +++ b/2021.07/fpm/Dockerfile @@ -0,0 +1,147 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.3-fpm-buster + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + msmtp \ +# For tini installation + gnupg dirmngr \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# Add tini for reaping processes +ENV TINI_VERSION v0.19.0 +RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ + && mkdir ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && 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; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + mariadb-client \ + bash \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmagick++-dev \ + libmemcached-dev \ + libgraphicsmagick1-dev \ + libfreetype6-dev \ + librsvg2-2 \ + libzip-dev \ + libldap2-dev \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-configure ldap \ + --with-libdir=lib/$debMultiarch/ \ + ;\ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + ctype \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install apcu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.0; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { print $3 }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +ENV FRIENDICA_VERSION "2021.07" +ENV FRIENDICA_ADDONS "2021.07" + +RUN set -ex; \ + curl -fsSL -o friendica.tar.gz \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + tar -xzf friendica.tar.gz -C /usr/src/; \ + rm friendica.tar.gz; \ + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ + chmod 777 /usr/src/friendica/view/smarty3; \ + curl -fsSL -o friendica_addons.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + mkdir -p /usr/src/friendica/proxy; \ + mkdir -p /usr/src/friendica/addon; \ + tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica_addons.tar.gz; + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/2021.07/fpm/config/00apcu.config.php b/2021.07/fpm/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.07/fpm/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.07/fpm/config/01redis.config.php b/2021.07/fpm/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.07/fpm/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.07/fpm/config/zz-docker.config.php b/2021.07/fpm/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.07/fpm/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.07/fpm/cron.sh b/2021.07/fpm/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.07/fpm/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.07/fpm/entrypoint.sh b/2021.07/fpm/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.07/fpm/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.07/fpm/setup_msmtp.sh b/2021.07/fpm/setup_msmtp.sh new file mode 100644 index 0000000..b90c42c --- /dev/null +++ b/2021.07/fpm/setup_msmtp.sh @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + echo "Setup finished" +fi diff --git a/2021.07/fpm/upgrade.exclude b/2021.07/fpm/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.07/fpm/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile new file mode 100644 index 0000000..e33bc87 --- /dev/null +++ b/2021.09-dev/apache/Dockerfile @@ -0,0 +1,143 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.3-apache-buster + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + msmtp \ +# For tini installation + gnupg dirmngr \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# Add tini for reaping processes +ENV TINI_VERSION v0.19.0 +RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ + && mkdir ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && 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; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + mariadb-client \ + bash \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmagick++-dev \ + libmemcached-dev \ + libgraphicsmagick1-dev \ + libfreetype6-dev \ + librsvg2-2 \ + libzip-dev \ + libldap2-dev \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-configure ldap \ + --with-libdir=lib/$debMultiarch/ \ + ;\ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + ctype \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install apcu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.0; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { print $3 }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + +RUN set -ex;\ + a2enmod rewrite remoteip ;\ + {\ + echo RemoteIPHeader X-Real-IP ;\ + echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ + echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ + echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ + } > /etc/apache2/conf-available/remoteip.conf;\ + a2enconf remoteip + +ENV FRIENDICA_VERSION "2021.09-dev" +ENV FRIENDICA_ADDONS "2021.09-dev" + + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint-dev.sh"] +CMD ["apache2-foreground"] diff --git a/2021.09-dev/apache/config/00apcu.config.php b/2021.09-dev/apache/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.09-dev/apache/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.09-dev/apache/config/01redis.config.php b/2021.09-dev/apache/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.09-dev/apache/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.09-dev/apache/config/zz-docker.config.php b/2021.09-dev/apache/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.09-dev/apache/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.09-dev/apache/cron.sh b/2021.09-dev/apache/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.09-dev/apache/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.09-dev/apache/entrypoint-dev.sh b/2021.09-dev/apache/entrypoint-dev.sh new file mode 100755 index 0000000..08c3c13 --- /dev/null +++ b/2021.09-dev/apache/entrypoint-dev.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +# checks if the branch and repository exists +check_branch() { + repo=${1:-} + branch=${2:-} + git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null + [ "$?" -eq "0" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + friendica_git="${FRIENDICA_VERSION}" + addons_git="${FRIENDICA_ADDONS}" + friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" + friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" + + if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + # Check if the branches exist before wiping the + if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then + echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." + + # Removing the whole directory first + rm -fr /usr/src/friendica + git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica + + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon + + echo "Download finished" + + if [ ! -f /usr/src/friendica/VERSION ]; then + echo "Couldn't clone repository" + exit 1 + fi + + /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica + return 0 + + else + if check_branch "$friendica_repo" "$friendica_git"; then + echo "$friendica_repo/$friendica_git is not valid." + else + echo "$friendica_addons_repo/$addons_git is not valid." + fi + echo "Using old version." + return 1 + + fi +} + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + # cloning from git is just possible for develop or Release Candidate + if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then + # just clone & check if it's a new install or upgrade + clone_develop + fi +fi + +exec /entrypoint.sh "$@" diff --git a/2021.09-dev/apache/entrypoint.sh b/2021.09-dev/apache/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.09-dev/apache/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.09-dev/apache/setup_msmtp.sh b/2021.09-dev/apache/setup_msmtp.sh new file mode 100644 index 0000000..b90c42c --- /dev/null +++ b/2021.09-dev/apache/setup_msmtp.sh @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + echo "Setup finished" +fi diff --git a/2021.09-dev/apache/upgrade.exclude b/2021.09-dev/apache/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.09-dev/apache/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile new file mode 100644 index 0000000..f0a02be --- /dev/null +++ b/2021.09-dev/fpm-alpine/Dockerfile @@ -0,0 +1,109 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template +FROM php:7.3-fpm-alpine + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + apk add --no-cache \ + rsync \ + git \ +# For mail() support + msmtp \ + shadow \ + tini; + +# install the PHP extensions we need +# see https://friendi.ca/resources/requirements/ +RUN set -ex; \ + \ + apk add --no-cache --virtual .build-deps \ + mariadb-client \ + bash \ + $PHPIZE_DEPS \ + libpng-dev \ + libjpeg-turbo-dev \ + imagemagick-dev \ + libtool \ + libmemcached-dev \ + cyrus-sasl-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + librsvg \ + pcre-dev \ + libzip-dev \ + icu-dev \ + openldap-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install APCu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.0; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ + apk del --no-network .build-deps; + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +ENV FRIENDICA_VERSION "2021.09-dev" +ENV FRIENDICA_ADDONS "2021.09-dev" + + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint-dev.sh"] +CMD ["php-fpm"] diff --git a/2021.09-dev/fpm-alpine/config/00apcu.config.php b/2021.09-dev/fpm-alpine/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.09-dev/fpm-alpine/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.09-dev/fpm-alpine/config/01redis.config.php b/2021.09-dev/fpm-alpine/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.09-dev/fpm-alpine/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.09-dev/fpm-alpine/config/zz-docker.config.php b/2021.09-dev/fpm-alpine/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.09-dev/fpm-alpine/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.09-dev/fpm-alpine/cron.sh b/2021.09-dev/fpm-alpine/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.09-dev/fpm-alpine/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.09-dev/fpm-alpine/entrypoint-dev.sh b/2021.09-dev/fpm-alpine/entrypoint-dev.sh new file mode 100755 index 0000000..08c3c13 --- /dev/null +++ b/2021.09-dev/fpm-alpine/entrypoint-dev.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +# checks if the branch and repository exists +check_branch() { + repo=${1:-} + branch=${2:-} + git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null + [ "$?" -eq "0" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + friendica_git="${FRIENDICA_VERSION}" + addons_git="${FRIENDICA_ADDONS}" + friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" + friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" + + if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + # Check if the branches exist before wiping the + if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then + echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." + + # Removing the whole directory first + rm -fr /usr/src/friendica + git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica + + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon + + echo "Download finished" + + if [ ! -f /usr/src/friendica/VERSION ]; then + echo "Couldn't clone repository" + exit 1 + fi + + /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica + return 0 + + else + if check_branch "$friendica_repo" "$friendica_git"; then + echo "$friendica_repo/$friendica_git is not valid." + else + echo "$friendica_addons_repo/$addons_git is not valid." + fi + echo "Using old version." + return 1 + + fi +} + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + # cloning from git is just possible for develop or Release Candidate + if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then + # just clone & check if it's a new install or upgrade + clone_develop + fi +fi + +exec /entrypoint.sh "$@" diff --git a/2021.09-dev/fpm-alpine/entrypoint.sh b/2021.09-dev/fpm-alpine/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.09-dev/fpm-alpine/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.09-dev/fpm-alpine/setup_msmtp.sh b/2021.09-dev/fpm-alpine/setup_msmtp.sh new file mode 100644 index 0000000..b90c42c --- /dev/null +++ b/2021.09-dev/fpm-alpine/setup_msmtp.sh @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + echo "Setup finished" +fi diff --git a/2021.09-dev/fpm-alpine/upgrade.exclude b/2021.09-dev/fpm-alpine/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.09-dev/fpm-alpine/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile new file mode 100644 index 0000000..54b412f --- /dev/null +++ b/2021.09-dev/fpm/Dockerfile @@ -0,0 +1,134 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.3-fpm-buster + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + msmtp \ +# For tini installation + gnupg dirmngr \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# Add tini for reaping processes +ENV TINI_VERSION v0.19.0 +RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ + && mkdir ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && 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; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + mariadb-client \ + bash \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmagick++-dev \ + libmemcached-dev \ + libgraphicsmagick1-dev \ + libfreetype6-dev \ + librsvg2-2 \ + libzip-dev \ + libldap2-dev \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-configure ldap \ + --with-libdir=lib/$debMultiarch/ \ + ;\ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + ctype \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install apcu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.0; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { print $3 }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +ENV FRIENDICA_VERSION "2021.09-dev" +ENV FRIENDICA_ADDONS "2021.09-dev" + + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint-dev.sh"] +CMD ["php-fpm"] diff --git a/2021.09-dev/fpm/config/00apcu.config.php b/2021.09-dev/fpm/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.09-dev/fpm/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.09-dev/fpm/config/01redis.config.php b/2021.09-dev/fpm/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.09-dev/fpm/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.09-dev/fpm/config/zz-docker.config.php b/2021.09-dev/fpm/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.09-dev/fpm/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.09-dev/fpm/cron.sh b/2021.09-dev/fpm/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.09-dev/fpm/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.09-dev/fpm/entrypoint-dev.sh b/2021.09-dev/fpm/entrypoint-dev.sh new file mode 100755 index 0000000..08c3c13 --- /dev/null +++ b/2021.09-dev/fpm/entrypoint-dev.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +# checks if the branch and repository exists +check_branch() { + repo=${1:-} + branch=${2:-} + git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null + [ "$?" -eq "0" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + friendica_git="${FRIENDICA_VERSION}" + addons_git="${FRIENDICA_ADDONS}" + friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" + friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" + + if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + # Check if the branches exist before wiping the + if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then + echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." + + # Removing the whole directory first + rm -fr /usr/src/friendica + git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica + + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon + + echo "Download finished" + + if [ ! -f /usr/src/friendica/VERSION ]; then + echo "Couldn't clone repository" + exit 1 + fi + + /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica + return 0 + + else + if check_branch "$friendica_repo" "$friendica_git"; then + echo "$friendica_repo/$friendica_git is not valid." + else + echo "$friendica_addons_repo/$addons_git is not valid." + fi + echo "Using old version." + return 1 + + fi +} + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + # cloning from git is just possible for develop or Release Candidate + if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then + # just clone & check if it's a new install or upgrade + clone_develop + fi +fi + +exec /entrypoint.sh "$@" diff --git a/2021.09-dev/fpm/entrypoint.sh b/2021.09-dev/fpm/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.09-dev/fpm/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.09-dev/fpm/setup_msmtp.sh b/2021.09-dev/fpm/setup_msmtp.sh new file mode 100644 index 0000000..b90c42c --- /dev/null +++ b/2021.09-dev/fpm/setup_msmtp.sh @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + echo "Setup finished" +fi diff --git a/2021.09-dev/fpm/upgrade.exclude b/2021.09-dev/fpm/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.09-dev/fpm/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/develop.txt b/develop.txt index e9cd37e..da1db37 100644 --- a/develop.txt +++ b/develop.txt @@ -1 +1 @@ -2021.06-dev +2021.09-dev diff --git a/latest.txt b/latest.txt index 7223033..9eb200c 100644 --- a/latest.txt +++ b/latest.txt @@ -1 +1 @@ -2021.04 +2021.07 From 03f6d4021bed36c5edf3632d9dc01d1360559fca Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 5 Jul 2021 19:54:21 +0200 Subject: [PATCH 03/22] Cleanup images --- 2021.06-dev/apache/Dockerfile | 143 ----------------- 2021.06-dev/apache/config/00apcu.config.php | 12 -- 2021.06-dev/apache/config/01redis.config.php | 15 -- .../apache/config/zz-docker.config.php | 68 -------- 2021.06-dev/apache/cron.sh | 14 -- 2021.06-dev/apache/entrypoint-dev.sh | 69 --------- 2021.06-dev/apache/entrypoint.sh | 145 ------------------ 2021.06-dev/apache/setup_msmtp.sh | 38 ----- 2021.06-dev/apache/upgrade.exclude | 10 -- 2021.06-dev/fpm-alpine/Dockerfile | 109 ------------- .../fpm-alpine/config/00apcu.config.php | 12 -- .../fpm-alpine/config/01redis.config.php | 15 -- .../fpm-alpine/config/zz-docker.config.php | 68 -------- 2021.06-dev/fpm-alpine/cron.sh | 14 -- 2021.06-dev/fpm-alpine/entrypoint-dev.sh | 69 --------- 2021.06-dev/fpm-alpine/entrypoint.sh | 145 ------------------ 2021.06-dev/fpm-alpine/setup_msmtp.sh | 38 ----- 2021.06-dev/fpm-alpine/upgrade.exclude | 10 -- 2021.06-dev/fpm/Dockerfile | 134 ---------------- 2021.06-dev/fpm/config/00apcu.config.php | 12 -- 2021.06-dev/fpm/config/01redis.config.php | 15 -- 2021.06-dev/fpm/config/zz-docker.config.php | 68 -------- 2021.06-dev/fpm/cron.sh | 14 -- 2021.06-dev/fpm/entrypoint-dev.sh | 69 --------- 2021.06-dev/fpm/entrypoint.sh | 145 ------------------ 2021.06-dev/fpm/setup_msmtp.sh | 38 ----- 2021.06-dev/fpm/upgrade.exclude | 10 -- 2021.06-rc/apache/Dockerfile | 143 ----------------- 2021.06-rc/apache/config/00apcu.config.php | 12 -- 2021.06-rc/apache/config/01redis.config.php | 15 -- 2021.06-rc/apache/config/zz-docker.config.php | 68 -------- 2021.06-rc/apache/cron.sh | 14 -- 2021.06-rc/apache/entrypoint-dev.sh | 69 --------- 2021.06-rc/apache/entrypoint.sh | 145 ------------------ 2021.06-rc/apache/setup_msmtp.sh | 38 ----- 2021.06-rc/apache/upgrade.exclude | 10 -- 2021.06-rc/fpm-alpine/Dockerfile | 109 ------------- .../fpm-alpine/config/00apcu.config.php | 12 -- .../fpm-alpine/config/01redis.config.php | 15 -- .../fpm-alpine/config/zz-docker.config.php | 68 -------- 2021.06-rc/fpm-alpine/cron.sh | 14 -- 2021.06-rc/fpm-alpine/entrypoint-dev.sh | 69 --------- 2021.06-rc/fpm-alpine/entrypoint.sh | 145 ------------------ 2021.06-rc/fpm-alpine/setup_msmtp.sh | 38 ----- 2021.06-rc/fpm-alpine/upgrade.exclude | 10 -- 2021.06-rc/fpm/Dockerfile | 134 ---------------- 2021.06-rc/fpm/config/00apcu.config.php | 12 -- 2021.06-rc/fpm/config/01redis.config.php | 15 -- 2021.06-rc/fpm/config/zz-docker.config.php | 68 -------- 2021.06-rc/fpm/cron.sh | 14 -- 2021.06-rc/fpm/entrypoint-dev.sh | 69 --------- 2021.06-rc/fpm/entrypoint.sh | 145 ------------------ 2021.06-rc/fpm/setup_msmtp.sh | 38 ----- 2021.06-rc/fpm/upgrade.exclude | 10 -- 54 files changed, 2998 deletions(-) delete mode 100644 2021.06-dev/apache/Dockerfile delete mode 100644 2021.06-dev/apache/config/00apcu.config.php delete mode 100644 2021.06-dev/apache/config/01redis.config.php delete mode 100644 2021.06-dev/apache/config/zz-docker.config.php delete mode 100755 2021.06-dev/apache/cron.sh delete mode 100755 2021.06-dev/apache/entrypoint-dev.sh delete mode 100755 2021.06-dev/apache/entrypoint.sh delete mode 100644 2021.06-dev/apache/setup_msmtp.sh delete mode 100644 2021.06-dev/apache/upgrade.exclude delete mode 100644 2021.06-dev/fpm-alpine/Dockerfile delete mode 100644 2021.06-dev/fpm-alpine/config/00apcu.config.php delete mode 100644 2021.06-dev/fpm-alpine/config/01redis.config.php delete mode 100644 2021.06-dev/fpm-alpine/config/zz-docker.config.php delete mode 100755 2021.06-dev/fpm-alpine/cron.sh delete mode 100755 2021.06-dev/fpm-alpine/entrypoint-dev.sh delete mode 100755 2021.06-dev/fpm-alpine/entrypoint.sh delete mode 100644 2021.06-dev/fpm-alpine/setup_msmtp.sh delete mode 100644 2021.06-dev/fpm-alpine/upgrade.exclude delete mode 100644 2021.06-dev/fpm/Dockerfile delete mode 100644 2021.06-dev/fpm/config/00apcu.config.php delete mode 100644 2021.06-dev/fpm/config/01redis.config.php delete mode 100644 2021.06-dev/fpm/config/zz-docker.config.php delete mode 100755 2021.06-dev/fpm/cron.sh delete mode 100755 2021.06-dev/fpm/entrypoint-dev.sh delete mode 100755 2021.06-dev/fpm/entrypoint.sh delete mode 100644 2021.06-dev/fpm/setup_msmtp.sh delete mode 100644 2021.06-dev/fpm/upgrade.exclude delete mode 100644 2021.06-rc/apache/Dockerfile delete mode 100644 2021.06-rc/apache/config/00apcu.config.php delete mode 100644 2021.06-rc/apache/config/01redis.config.php delete mode 100644 2021.06-rc/apache/config/zz-docker.config.php delete mode 100755 2021.06-rc/apache/cron.sh delete mode 100755 2021.06-rc/apache/entrypoint-dev.sh delete mode 100755 2021.06-rc/apache/entrypoint.sh delete mode 100644 2021.06-rc/apache/setup_msmtp.sh delete mode 100644 2021.06-rc/apache/upgrade.exclude delete mode 100644 2021.06-rc/fpm-alpine/Dockerfile delete mode 100644 2021.06-rc/fpm-alpine/config/00apcu.config.php delete mode 100644 2021.06-rc/fpm-alpine/config/01redis.config.php delete mode 100644 2021.06-rc/fpm-alpine/config/zz-docker.config.php delete mode 100755 2021.06-rc/fpm-alpine/cron.sh delete mode 100755 2021.06-rc/fpm-alpine/entrypoint-dev.sh delete mode 100755 2021.06-rc/fpm-alpine/entrypoint.sh delete mode 100644 2021.06-rc/fpm-alpine/setup_msmtp.sh delete mode 100644 2021.06-rc/fpm-alpine/upgrade.exclude delete mode 100644 2021.06-rc/fpm/Dockerfile delete mode 100644 2021.06-rc/fpm/config/00apcu.config.php delete mode 100644 2021.06-rc/fpm/config/01redis.config.php delete mode 100644 2021.06-rc/fpm/config/zz-docker.config.php delete mode 100755 2021.06-rc/fpm/cron.sh delete mode 100755 2021.06-rc/fpm/entrypoint-dev.sh delete mode 100755 2021.06-rc/fpm/entrypoint.sh delete mode 100644 2021.06-rc/fpm/setup_msmtp.sh delete mode 100644 2021.06-rc/fpm/upgrade.exclude diff --git a/2021.06-dev/apache/Dockerfile b/2021.06-dev/apache/Dockerfile deleted file mode 100644 index 7d3cb45..0000000 --- a/2021.06-dev/apache/Dockerfile +++ /dev/null @@ -1,143 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-apache-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - -RUN set -ex;\ - a2enmod rewrite remoteip ;\ - {\ - echo RemoteIPHeader X-Real-IP ;\ - echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ - echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ - echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ - } > /etc/apache2/conf-available/remoteip.conf;\ - a2enconf remoteip - -ENV FRIENDICA_VERSION "2021.06-dev" -ENV FRIENDICA_ADDONS "2021.06-dev" - - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["apache2-foreground"] diff --git a/2021.06-dev/apache/config/00apcu.config.php b/2021.06-dev/apache/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.06-dev/apache/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.06-dev/apache/config/01redis.config.php b/2021.06-dev/apache/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.06-dev/apache/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.06-dev/apache/config/zz-docker.config.php b/2021.06-dev/apache/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.06-dev/apache/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.06-dev/apache/cron.sh b/2021.06-dev/apache/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.06-dev/apache/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.06-dev/apache/entrypoint-dev.sh b/2021.06-dev/apache/entrypoint-dev.sh deleted file mode 100755 index 08c3c13..0000000 --- a/2021.06-dev/apache/entrypoint-dev.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.06-dev/apache/entrypoint.sh b/2021.06-dev/apache/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.06-dev/apache/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.06-dev/apache/setup_msmtp.sh b/2021.06-dev/apache/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.06-dev/apache/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.06-dev/apache/upgrade.exclude b/2021.06-dev/apache/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.06-dev/apache/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.06-dev/fpm-alpine/Dockerfile b/2021.06-dev/fpm-alpine/Dockerfile deleted file mode 100644 index 1abe246..0000000 --- a/2021.06-dev/fpm-alpine/Dockerfile +++ /dev/null @@ -1,109 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:7.3-fpm-alpine - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - apk add --no-cache \ - rsync \ - git \ -# For mail() support - msmtp \ - shadow \ - tini; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - apk add --no-cache --virtual .build-deps \ - mariadb-client \ - bash \ - $PHPIZE_DEPS \ - libpng-dev \ - libjpeg-turbo-dev \ - imagemagick-dev \ - libtool \ - libmemcached-dev \ - cyrus-sasl-dev \ - libjpeg-turbo-dev \ - freetype-dev \ - librsvg \ - pcre-dev \ - libzip-dev \ - icu-dev \ - openldap-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install APCu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ - apk del --no-network .build-deps; - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.06-dev" -ENV FRIENDICA_ADDONS "2021.06-dev" - - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["php-fpm"] diff --git a/2021.06-dev/fpm-alpine/config/00apcu.config.php b/2021.06-dev/fpm-alpine/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.06-dev/fpm-alpine/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.06-dev/fpm-alpine/config/01redis.config.php b/2021.06-dev/fpm-alpine/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.06-dev/fpm-alpine/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.06-dev/fpm-alpine/config/zz-docker.config.php b/2021.06-dev/fpm-alpine/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.06-dev/fpm-alpine/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.06-dev/fpm-alpine/cron.sh b/2021.06-dev/fpm-alpine/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.06-dev/fpm-alpine/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.06-dev/fpm-alpine/entrypoint-dev.sh b/2021.06-dev/fpm-alpine/entrypoint-dev.sh deleted file mode 100755 index 08c3c13..0000000 --- a/2021.06-dev/fpm-alpine/entrypoint-dev.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.06-dev/fpm-alpine/entrypoint.sh b/2021.06-dev/fpm-alpine/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.06-dev/fpm-alpine/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.06-dev/fpm-alpine/setup_msmtp.sh b/2021.06-dev/fpm-alpine/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.06-dev/fpm-alpine/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.06-dev/fpm-alpine/upgrade.exclude b/2021.06-dev/fpm-alpine/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.06-dev/fpm-alpine/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.06-dev/fpm/Dockerfile b/2021.06-dev/fpm/Dockerfile deleted file mode 100644 index bb3761f..0000000 --- a/2021.06-dev/fpm/Dockerfile +++ /dev/null @@ -1,134 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-fpm-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.06-dev" -ENV FRIENDICA_ADDONS "2021.06-dev" - - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["php-fpm"] diff --git a/2021.06-dev/fpm/config/00apcu.config.php b/2021.06-dev/fpm/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.06-dev/fpm/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.06-dev/fpm/config/01redis.config.php b/2021.06-dev/fpm/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.06-dev/fpm/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.06-dev/fpm/config/zz-docker.config.php b/2021.06-dev/fpm/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.06-dev/fpm/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.06-dev/fpm/cron.sh b/2021.06-dev/fpm/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.06-dev/fpm/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.06-dev/fpm/entrypoint-dev.sh b/2021.06-dev/fpm/entrypoint-dev.sh deleted file mode 100755 index 08c3c13..0000000 --- a/2021.06-dev/fpm/entrypoint-dev.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.06-dev/fpm/entrypoint.sh b/2021.06-dev/fpm/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.06-dev/fpm/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.06-dev/fpm/setup_msmtp.sh b/2021.06-dev/fpm/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.06-dev/fpm/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.06-dev/fpm/upgrade.exclude b/2021.06-dev/fpm/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.06-dev/fpm/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.06-rc/apache/Dockerfile b/2021.06-rc/apache/Dockerfile deleted file mode 100644 index adc0f3f..0000000 --- a/2021.06-rc/apache/Dockerfile +++ /dev/null @@ -1,143 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-apache-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - -RUN set -ex;\ - a2enmod rewrite remoteip ;\ - {\ - echo RemoteIPHeader X-Real-IP ;\ - echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ - echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ - echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ - } > /etc/apache2/conf-available/remoteip.conf;\ - a2enconf remoteip - -ENV FRIENDICA_VERSION "2021.06-rc" -ENV FRIENDICA_ADDONS "2021.06-rc" - - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["apache2-foreground"] diff --git a/2021.06-rc/apache/config/00apcu.config.php b/2021.06-rc/apache/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.06-rc/apache/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.06-rc/apache/config/01redis.config.php b/2021.06-rc/apache/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.06-rc/apache/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.06-rc/apache/config/zz-docker.config.php b/2021.06-rc/apache/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.06-rc/apache/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.06-rc/apache/cron.sh b/2021.06-rc/apache/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.06-rc/apache/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.06-rc/apache/entrypoint-dev.sh b/2021.06-rc/apache/entrypoint-dev.sh deleted file mode 100755 index 08c3c13..0000000 --- a/2021.06-rc/apache/entrypoint-dev.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.06-rc/apache/entrypoint.sh b/2021.06-rc/apache/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.06-rc/apache/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.06-rc/apache/setup_msmtp.sh b/2021.06-rc/apache/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.06-rc/apache/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.06-rc/apache/upgrade.exclude b/2021.06-rc/apache/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.06-rc/apache/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.06-rc/fpm-alpine/Dockerfile b/2021.06-rc/fpm-alpine/Dockerfile deleted file mode 100644 index 02feb9b..0000000 --- a/2021.06-rc/fpm-alpine/Dockerfile +++ /dev/null @@ -1,109 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:7.3-fpm-alpine - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - apk add --no-cache \ - rsync \ - git \ -# For mail() support - msmtp \ - shadow \ - tini; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - apk add --no-cache --virtual .build-deps \ - mariadb-client \ - bash \ - $PHPIZE_DEPS \ - libpng-dev \ - libjpeg-turbo-dev \ - imagemagick-dev \ - libtool \ - libmemcached-dev \ - cyrus-sasl-dev \ - libjpeg-turbo-dev \ - freetype-dev \ - librsvg \ - pcre-dev \ - libzip-dev \ - icu-dev \ - openldap-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install APCu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ - apk del --no-network .build-deps; - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.06-rc" -ENV FRIENDICA_ADDONS "2021.06-rc" - - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["php-fpm"] diff --git a/2021.06-rc/fpm-alpine/config/00apcu.config.php b/2021.06-rc/fpm-alpine/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.06-rc/fpm-alpine/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.06-rc/fpm-alpine/config/01redis.config.php b/2021.06-rc/fpm-alpine/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.06-rc/fpm-alpine/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.06-rc/fpm-alpine/config/zz-docker.config.php b/2021.06-rc/fpm-alpine/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.06-rc/fpm-alpine/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.06-rc/fpm-alpine/cron.sh b/2021.06-rc/fpm-alpine/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.06-rc/fpm-alpine/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.06-rc/fpm-alpine/entrypoint-dev.sh b/2021.06-rc/fpm-alpine/entrypoint-dev.sh deleted file mode 100755 index 08c3c13..0000000 --- a/2021.06-rc/fpm-alpine/entrypoint-dev.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.06-rc/fpm-alpine/entrypoint.sh b/2021.06-rc/fpm-alpine/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.06-rc/fpm-alpine/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.06-rc/fpm-alpine/setup_msmtp.sh b/2021.06-rc/fpm-alpine/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.06-rc/fpm-alpine/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.06-rc/fpm-alpine/upgrade.exclude b/2021.06-rc/fpm-alpine/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.06-rc/fpm-alpine/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.06-rc/fpm/Dockerfile b/2021.06-rc/fpm/Dockerfile deleted file mode 100644 index 9cc3e56..0000000 --- a/2021.06-rc/fpm/Dockerfile +++ /dev/null @@ -1,134 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-fpm-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.06-rc" -ENV FRIENDICA_ADDONS "2021.06-rc" - - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["php-fpm"] diff --git a/2021.06-rc/fpm/config/00apcu.config.php b/2021.06-rc/fpm/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.06-rc/fpm/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.06-rc/fpm/config/01redis.config.php b/2021.06-rc/fpm/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.06-rc/fpm/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.06-rc/fpm/config/zz-docker.config.php b/2021.06-rc/fpm/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.06-rc/fpm/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.06-rc/fpm/cron.sh b/2021.06-rc/fpm/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.06-rc/fpm/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.06-rc/fpm/entrypoint-dev.sh b/2021.06-rc/fpm/entrypoint-dev.sh deleted file mode 100755 index 08c3c13..0000000 --- a/2021.06-rc/fpm/entrypoint-dev.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eu - -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.06-rc/fpm/entrypoint.sh b/2021.06-rc/fpm/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.06-rc/fpm/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.06-rc/fpm/setup_msmtp.sh b/2021.06-rc/fpm/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.06-rc/fpm/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.06-rc/fpm/upgrade.exclude b/2021.06-rc/fpm/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.06-rc/fpm/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file From 3d49fcaabd45795d1d8eb1330ff815f9e3e08a91 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 11 Jul 2021 13:43:10 +0200 Subject: [PATCH 04/22] Activate msmtp just in case there's a config --- 2020.09/apache/Dockerfile | 4 ---- 2020.09/apache/setup_msmtp.sh | 8 ++++++++ 2020.09/fpm-alpine/Dockerfile | 4 ---- 2020.09/fpm-alpine/setup_msmtp.sh | 8 ++++++++ 2020.09/fpm/Dockerfile | 4 ---- 2020.09/fpm/setup_msmtp.sh | 8 ++++++++ 2021.01/apache/Dockerfile | 4 ---- 2021.01/apache/setup_msmtp.sh | 8 ++++++++ 2021.01/fpm-alpine/Dockerfile | 4 ---- 2021.01/fpm-alpine/setup_msmtp.sh | 8 ++++++++ 2021.01/fpm/Dockerfile | 4 ---- 2021.01/fpm/setup_msmtp.sh | 8 ++++++++ 2021.04/apache/Dockerfile | 4 ---- 2021.04/apache/setup_msmtp.sh | 8 ++++++++ 2021.04/fpm-alpine/Dockerfile | 4 ---- 2021.04/fpm-alpine/setup_msmtp.sh | 8 ++++++++ 2021.04/fpm/Dockerfile | 4 ---- 2021.04/fpm/setup_msmtp.sh | 8 ++++++++ 2021.07/apache/Dockerfile | 4 ---- 2021.07/apache/setup_msmtp.sh | 8 ++++++++ 2021.07/fpm-alpine/Dockerfile | 4 ---- 2021.07/fpm-alpine/setup_msmtp.sh | 8 ++++++++ 2021.07/fpm/Dockerfile | 4 ---- 2021.07/fpm/setup_msmtp.sh | 8 ++++++++ 2021.09-dev/apache/Dockerfile | 4 ---- 2021.09-dev/apache/setup_msmtp.sh | 8 ++++++++ 2021.09-dev/fpm-alpine/Dockerfile | 4 ---- 2021.09-dev/fpm-alpine/setup_msmtp.sh | 8 ++++++++ 2021.09-dev/fpm/Dockerfile | 4 ---- 2021.09-dev/fpm/setup_msmtp.sh | 8 ++++++++ Dockerfile-alpine.template | 4 ---- Dockerfile-debian.template | 4 ---- docker-setup_msmtp.sh | 8 ++++++++ 33 files changed, 128 insertions(+), 68 deletions(-) diff --git a/2020.09/apache/Dockerfile b/2020.09/apache/Dockerfile index 343b2a4..15f41a7 100644 --- a/2020.09/apache/Dockerfile +++ b/2020.09/apache/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2020.09/apache/setup_msmtp.sh b/2020.09/apache/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2020.09/apache/setup_msmtp.sh +++ b/2020.09/apache/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2020.09/fpm-alpine/Dockerfile b/2020.09/fpm-alpine/Dockerfile index d8e1fbd..b63e7e7 100644 --- a/2020.09/fpm-alpine/Dockerfile +++ b/2020.09/fpm-alpine/Dockerfile @@ -83,10 +83,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2020.09/fpm-alpine/setup_msmtp.sh b/2020.09/fpm-alpine/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2020.09/fpm-alpine/setup_msmtp.sh +++ b/2020.09/fpm-alpine/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2020.09/fpm/Dockerfile b/2020.09/fpm/Dockerfile index 348f34b..c2db2ee 100644 --- a/2020.09/fpm/Dockerfile +++ b/2020.09/fpm/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2020.09/fpm/setup_msmtp.sh b/2020.09/fpm/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2020.09/fpm/setup_msmtp.sh +++ b/2020.09/fpm/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.01/apache/Dockerfile b/2021.01/apache/Dockerfile index 31346ad..b3ca98a 100644 --- a/2021.01/apache/Dockerfile +++ b/2021.01/apache/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.01/apache/setup_msmtp.sh b/2021.01/apache/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.01/apache/setup_msmtp.sh +++ b/2021.01/apache/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.01/fpm-alpine/Dockerfile b/2021.01/fpm-alpine/Dockerfile index 2dfc46c..c0253aa 100644 --- a/2021.01/fpm-alpine/Dockerfile +++ b/2021.01/fpm-alpine/Dockerfile @@ -83,10 +83,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.01/fpm-alpine/setup_msmtp.sh b/2021.01/fpm-alpine/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.01/fpm-alpine/setup_msmtp.sh +++ b/2021.01/fpm-alpine/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.01/fpm/Dockerfile b/2021.01/fpm/Dockerfile index 62fbf3d..5172454 100644 --- a/2021.01/fpm/Dockerfile +++ b/2021.01/fpm/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.01/fpm/setup_msmtp.sh b/2021.01/fpm/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.01/fpm/setup_msmtp.sh +++ b/2021.01/fpm/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 2bb120d..76ccaf0 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.04/apache/setup_msmtp.sh b/2021.04/apache/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.04/apache/setup_msmtp.sh +++ b/2021.04/apache/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 327729d..a480e97 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -83,10 +83,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.04/fpm-alpine/setup_msmtp.sh b/2021.04/fpm-alpine/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.04/fpm-alpine/setup_msmtp.sh +++ b/2021.04/fpm-alpine/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index 77cd06c..7096e8e 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.04/fpm/setup_msmtp.sh b/2021.04/fpm/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.04/fpm/setup_msmtp.sh +++ b/2021.04/fpm/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index d5c927e..17fa573 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.07/apache/setup_msmtp.sh b/2021.07/apache/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.07/apache/setup_msmtp.sh +++ b/2021.07/apache/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index f7d1081..599f7f3 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -83,10 +83,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.07/fpm-alpine/setup_msmtp.sh b/2021.07/fpm-alpine/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.07/fpm-alpine/setup_msmtp.sh +++ b/2021.07/fpm-alpine/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index 63b2c1b..8f19f28 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.07/fpm/setup_msmtp.sh b/2021.07/fpm/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.07/fpm/setup_msmtp.sh +++ b/2021.07/fpm/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile index e33bc87..1d5afdc 100644 --- a/2021.09-dev/apache/Dockerfile +++ b/2021.09-dev/apache/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-dev/apache/setup_msmtp.sh b/2021.09-dev/apache/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.09-dev/apache/setup_msmtp.sh +++ b/2021.09-dev/apache/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile index f0a02be..c62466e 100644 --- a/2021.09-dev/fpm-alpine/Dockerfile +++ b/2021.09-dev/fpm-alpine/Dockerfile @@ -83,10 +83,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-dev/fpm-alpine/setup_msmtp.sh b/2021.09-dev/fpm-alpine/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.09-dev/fpm-alpine/setup_msmtp.sh +++ b/2021.09-dev/fpm-alpine/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile index 54b412f..aba8978 100644 --- a/2021.09-dev/fpm/Dockerfile +++ b/2021.09-dev/fpm/Dockerfile @@ -108,10 +108,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-dev/fpm/setup_msmtp.sh b/2021.09-dev/fpm/setup_msmtp.sh index b90c42c..b14c097 100644 --- a/2021.09-dev/fpm/setup_msmtp.sh +++ b/2021.09-dev/fpm/setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 8132fd3..645a470 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -82,10 +82,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 8e35e6e..1203573 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -107,10 +107,6 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/docker-setup_msmtp.sh b/docker-setup_msmtp.sh index b90c42c..b14c097 100644 --- a/docker-setup_msmtp.sh +++ b/docker-setup_msmtp.sh @@ -34,5 +34,13 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + echo "Setup finished" fi From 8dc6b7a396fad0ad2f6bbc234d0a9cacf86a7222 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 15 Jul 2021 13:23:41 +0200 Subject: [PATCH 05/22] Adding SMTP example based on https://github.com/friendica/docker/issues/156#issuecomment-879300637 --- .../insecure/smtp/apache/db.env | 5 + .../insecure/smtp/apache/docker-compose.yml | 67 +++++++++++ .../insecure/smtp/fpm-alpine/db.env | 5 + .../smtp/fpm-alpine/docker-compose.yml | 74 ++++++++++++ .../insecure/smtp/fpm-alpine/web/nginx.conf | 109 ++++++++++++++++++ .../docker-compose/insecure/smtp/fpm/db.env | 5 + .../insecure/smtp/fpm/docker-compose.yml | 74 ++++++++++++ .../insecure/smtp/fpm/web/nginx.conf | 109 ++++++++++++++++++ 8 files changed, 448 insertions(+) create mode 100644 .examples/docker-compose/insecure/smtp/apache/db.env create mode 100644 .examples/docker-compose/insecure/smtp/apache/docker-compose.yml create mode 100644 .examples/docker-compose/insecure/smtp/fpm-alpine/db.env create mode 100644 .examples/docker-compose/insecure/smtp/fpm-alpine/docker-compose.yml create mode 100644 .examples/docker-compose/insecure/smtp/fpm-alpine/web/nginx.conf create mode 100644 .examples/docker-compose/insecure/smtp/fpm/db.env create mode 100644 .examples/docker-compose/insecure/smtp/fpm/docker-compose.yml create mode 100644 .examples/docker-compose/insecure/smtp/fpm/web/nginx.conf diff --git a/.examples/docker-compose/insecure/smtp/apache/db.env b/.examples/docker-compose/insecure/smtp/apache/db.env new file mode 100644 index 0000000..17c0d1e --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/apache/db.env @@ -0,0 +1,5 @@ +MYSQL_PASSWORD= +MYSQL_DATABASE=friendica +MYSQL_USER=friendica +MYSQL_HOST=db +MYSQL_PORT=3306 \ No newline at end of file diff --git a/.examples/docker-compose/insecure/smtp/apache/docker-compose.yml b/.examples/docker-compose/insecure/smtp/apache/docker-compose.yml new file mode 100644 index 0000000..892fc2a --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/apache/docker-compose.yml @@ -0,0 +1,67 @@ +version: '2.1' +services: + + db: + image: mariadb + restart: always + volumes: + - db:/var/lib/mysql/ + environment: + - MYSQL_RANDOM_ROOT_PASSWORD=yes + env_file: + - db.env + + app: + image: friendica + restart: always + volumes: + - friendica:/var/www/html + environment: + - FRIENDICA_ADMIN_MAIL= + - FRIENDICA_TZ= + - FRIENDICA_LANG= + - FRIENDICA_URL= + - FRIENDICA_SITENAME= + - SMTP=smtp.office365.com + - SMTP_PORT=587 + - SMTP_DOMAIN=hotmail.com + - SMTP_FROM=user + - SMTP_TLS=true + - SMTP_STARTTLS=true + - SMTP_AUTH=on + - SMTP_AUTH_USER=xxx@hotmail.com + - SMTP_AUTH_PASS=password + env_file: + - db.env + depends_on: + - db + ports: + - "80:80" + + cron: + image: friendica + restart: always + volumes: + - friendica:/var/www/html + entrypoint: /cron.sh + environment: + - FRIENDICA_ADMIN_MAIL= + - FRIENDICA_TZ= + - SMTP=smtp.office365.com + - SMTP_PORT=587 + - SMTP_DOMAIN=hotmail.com + - SMTP_FROM=user + - SMTP_TLS=true + - SMTP_STARTTLS=true + - SMTP_AUTH=on + - SMTP_AUTH_USER=xxx@hotmail.com + - SMTP_AUTH_PASS=password + depends_on: + - app + - db + env_file: + - db.env + +volumes: + db: + friendica: diff --git a/.examples/docker-compose/insecure/smtp/fpm-alpine/db.env b/.examples/docker-compose/insecure/smtp/fpm-alpine/db.env new file mode 100644 index 0000000..17c0d1e --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/fpm-alpine/db.env @@ -0,0 +1,5 @@ +MYSQL_PASSWORD= +MYSQL_DATABASE=friendica +MYSQL_USER=friendica +MYSQL_HOST=db +MYSQL_PORT=3306 \ No newline at end of file diff --git a/.examples/docker-compose/insecure/smtp/fpm-alpine/docker-compose.yml b/.examples/docker-compose/insecure/smtp/fpm-alpine/docker-compose.yml new file mode 100644 index 0000000..cb97d23 --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/fpm-alpine/docker-compose.yml @@ -0,0 +1,74 @@ +version: '2.1' +services: + + db: + image: mariadb + restart: always + volumes: + - db:/var/lib/mysql/ + environment: + - MYSQL_RANDOM_ROOT_PASSWORD=yes + env_file: + - db.env + + app: + image: friendica:fpm-alpine + restart: always + volumes: + - friendica:/var/www/html + environment: + - FRIENDICA_ADMIN_MAIL= + - FRIENDICA_TZ= + - FRIENDICA_LANG= + - FRIENDICA_URL= + - FRIENDICA_SITENAME= + - SMTP=smtp.office365.com + - SMTP_PORT=587 + - SMTP_DOMAIN=hotmail.com + - SMTP_FROM=user + - SMTP_TLS=true + - SMTP_STARTTLS=true + - SMTP_AUTH=on + - SMTP_AUTH_USER=xxx@hotmail.com + - SMTP_AUTH_PASS=password + env_file: + - db.env + depends_on: + - db + + cron: + image: friendica:fpm-alpine + restart: always + volumes: + - friendica:/var/www/html + environment: + - FRIENDICA_ADMIN_MAIL= + - FRIENDICA_TZ= + - SMTP=smtp.office365.com + - SMTP_PORT=587 + - SMTP_DOMAIN=hotmail.com + - SMTP_FROM=user + - SMTP_TLS=true + - SMTP_STARTTLS=true + - SMTP_AUTH=on + - SMTP_AUTH_USER=xxx@hotmail.com + - SMTP_AUTH_PASS=password + entrypoint: /cron.sh + depends_on: + - db + - app + + web: + image: nginx + restart: always + volumes: + - friendica:/var/www/html:ro + - ./web/nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - app + ports: + - "80:80" + +volumes: + db: + friendica: diff --git a/.examples/docker-compose/insecure/smtp/fpm-alpine/web/nginx.conf b/.examples/docker-compose/insecure/smtp/fpm-alpine/web/nginx.conf new file mode 100644 index 0000000..c168621 --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/fpm-alpine/web/nginx.conf @@ -0,0 +1,109 @@ +## +# Friendica Nginx configuration +# by Olaf Conradi, modified by Philipp Holzer +# +worker_processes 4; + +events { + worker_connections 1024; +} + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +http { + charset utf-8; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + # If behind reverse proxy, forwards the correct IP + set_real_ip_from 10.0.0.0/8; + set_real_ip_from 172.16.0.0/12; + set_real_ip_from 192.168.0.0/16; + set_real_ip_from fc00::/7; + real_ip_header X-Real-IP; + + upstream php-handler { + server app:9000; + } + + server { + listen 80; + server_name friendica.local; + + index index.php; + + root /var/www/html; + #Uncomment the following line to include a standard configuration file + #Note that the most specific rule wins and your standard configuration + #will therefore *add* to this file, but not override it. + #include standard.conf + # allow uploads up to 20MB in size + client_max_body_size 20m; + client_body_buffer_size 128k; + + # rewrite to front controller as default rule + location / { + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?pagename=$1; + } + } + # make sure webfinger and other well known services aren't blocked + # by denying dot files and rewrite request to the front controller + location ^~ /.well-known/ { + allow all; + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?pagename=$1; + } + } + + # statically serve these file types when possible + # otherwise fall back to front controller + # allow browser to cache them + # added .htm for advanced source code editor library + #location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ { + # expires 30d; + # try_files $uri /index.php?pagename=$uri&$args; + #} + + include mime.types; + + # block these file types + location ~* \.(tpl|md|tgz|log|out)$ { + deny all; + } + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # or a unix socket + location ~* \.php$ { + # Zero-day exploit defense. + # http://forum.nginx.org/read.php?2,88845,page=3 + # Won't work properly (404 error) if the file is not stored on this + # server, which is entirely possible with php-fpm/php-fcgi. + # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on + # another machine. And then cross your fingers that you won't get hacked. + try_files $uri =404; + + # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + fastcgi_pass php-handler; + + include fastcgi_params; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + + # deny access to all dot files + location ~ /\. { + deny all; + } + } +} \ No newline at end of file diff --git a/.examples/docker-compose/insecure/smtp/fpm/db.env b/.examples/docker-compose/insecure/smtp/fpm/db.env new file mode 100644 index 0000000..17c0d1e --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/fpm/db.env @@ -0,0 +1,5 @@ +MYSQL_PASSWORD= +MYSQL_DATABASE=friendica +MYSQL_USER=friendica +MYSQL_HOST=db +MYSQL_PORT=3306 \ No newline at end of file diff --git a/.examples/docker-compose/insecure/smtp/fpm/docker-compose.yml b/.examples/docker-compose/insecure/smtp/fpm/docker-compose.yml new file mode 100644 index 0000000..a0a9748 --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/fpm/docker-compose.yml @@ -0,0 +1,74 @@ +version: '2.1' +services: + + db: + image: mariadb + restart: always + volumes: + - db:/var/lib/mysql/ + environment: + - MYSQL_RANDOM_ROOT_PASSWORD=yes + env_file: + - db.env + + app: + image: friendica:fpm + restart: always + volumes: + - friendica:/var/www/html + environment: + - FRIENDICA_ADMIN_MAIL= + - FRIENDICA_TZ= + - FRIENDICA_LANG= + - FRIENDICA_URL= + - FRIENDICA_SITENAME= + - SMTP=smtp.office365.com + - SMTP_PORT=587 + - SMTP_DOMAIN=hotmail.com + - SMTP_FROM=user + - SMTP_TLS=true + - SMTP_STARTTLS=true + - SMTP_AUTH=on + - SMTP_AUTH_USER=xxx@hotmail.com + - SMTP_AUTH_PASS=password + env_file: + - db.env + depends_on: + - db + + cron: + image: friendica:fpm + restart: always + volumes: + - friendica:/var/www/html + environment: + - FRIENDICA_ADMIN_MAIL= + - FRIENDICA_TZ= + - SMTP=smtp.office365.com + - SMTP_PORT=587 + - SMTP_DOMAIN=hotmail.com + - SMTP_FROM=user + - SMTP_TLS=true + - SMTP_STARTTLS=true + - SMTP_AUTH=on + - SMTP_AUTH_USER=xxx@hotmail.com + - SMTP_AUTH_PASS=password + entrypoint: /cron.sh + depends_on: + - db + - app + + web: + image: nginx + restart: always + volumes: + - friendica:/var/www/html:ro + - ./web/nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - app + ports: + - "80:80" + +volumes: + db: + friendica: diff --git a/.examples/docker-compose/insecure/smtp/fpm/web/nginx.conf b/.examples/docker-compose/insecure/smtp/fpm/web/nginx.conf new file mode 100644 index 0000000..c168621 --- /dev/null +++ b/.examples/docker-compose/insecure/smtp/fpm/web/nginx.conf @@ -0,0 +1,109 @@ +## +# Friendica Nginx configuration +# by Olaf Conradi, modified by Philipp Holzer +# +worker_processes 4; + +events { + worker_connections 1024; +} + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +http { + charset utf-8; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + # If behind reverse proxy, forwards the correct IP + set_real_ip_from 10.0.0.0/8; + set_real_ip_from 172.16.0.0/12; + set_real_ip_from 192.168.0.0/16; + set_real_ip_from fc00::/7; + real_ip_header X-Real-IP; + + upstream php-handler { + server app:9000; + } + + server { + listen 80; + server_name friendica.local; + + index index.php; + + root /var/www/html; + #Uncomment the following line to include a standard configuration file + #Note that the most specific rule wins and your standard configuration + #will therefore *add* to this file, but not override it. + #include standard.conf + # allow uploads up to 20MB in size + client_max_body_size 20m; + client_body_buffer_size 128k; + + # rewrite to front controller as default rule + location / { + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?pagename=$1; + } + } + # make sure webfinger and other well known services aren't blocked + # by denying dot files and rewrite request to the front controller + location ^~ /.well-known/ { + allow all; + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?pagename=$1; + } + } + + # statically serve these file types when possible + # otherwise fall back to front controller + # allow browser to cache them + # added .htm for advanced source code editor library + #location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ { + # expires 30d; + # try_files $uri /index.php?pagename=$uri&$args; + #} + + include mime.types; + + # block these file types + location ~* \.(tpl|md|tgz|log|out)$ { + deny all; + } + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # or a unix socket + location ~* \.php$ { + # Zero-day exploit defense. + # http://forum.nginx.org/read.php?2,88845,page=3 + # Won't work properly (404 error) if the file is not stored on this + # server, which is entirely possible with php-fpm/php-fcgi. + # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on + # another machine. And then cross your fingers that you won't get hacked. + try_files $uri =404; + + # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + fastcgi_pass php-handler; + + include fastcgi_params; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + + # deny access to all dot files + location ~ /\. { + deny all; + } + } +} \ No newline at end of file From 1ce2e6bd1196457d7bcb54dd5de987ec6ba6f1a7 Mon Sep 17 00:00:00 2001 From: GitHub Workflow Date: Fri, 23 Jul 2021 01:31:17 +0000 Subject: [PATCH 06/22] Runs update.sh --- 2020.09/apache/Dockerfile | 2 +- 2020.09/fpm-alpine/Dockerfile | 2 +- 2020.09/fpm/Dockerfile | 2 +- 2021.01/apache/Dockerfile | 2 +- 2021.01/fpm-alpine/Dockerfile | 2 +- 2021.01/fpm/Dockerfile | 2 +- 2021.04/apache/Dockerfile | 2 +- 2021.04/fpm-alpine/Dockerfile | 2 +- 2021.04/fpm/Dockerfile | 2 +- 2021.07/apache/Dockerfile | 2 +- 2021.07/fpm-alpine/Dockerfile | 2 +- 2021.07/fpm/Dockerfile | 2 +- 2021.09-dev/apache/Dockerfile | 2 +- 2021.09-dev/fpm-alpine/Dockerfile | 2 +- 2021.09-dev/fpm/Dockerfile | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/2020.09/apache/Dockerfile b/2020.09/apache/Dockerfile index 15f41a7..941f5d4 100644 --- a/2020.09/apache/Dockerfile +++ b/2020.09/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2020.09/fpm-alpine/Dockerfile b/2020.09/fpm-alpine/Dockerfile index b63e7e7..fc516e4 100644 --- a/2020.09/fpm-alpine/Dockerfile +++ b/2020.09/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2020.09/fpm/Dockerfile b/2020.09/fpm/Dockerfile index c2db2ee..6151a09 100644 --- a/2020.09/fpm/Dockerfile +++ b/2020.09/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.01/apache/Dockerfile b/2021.01/apache/Dockerfile index b3ca98a..71e71e2 100644 --- a/2021.01/apache/Dockerfile +++ b/2021.01/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.01/fpm-alpine/Dockerfile b/2021.01/fpm-alpine/Dockerfile index c0253aa..cfe0da4 100644 --- a/2021.01/fpm-alpine/Dockerfile +++ b/2021.01/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.01/fpm/Dockerfile b/2021.01/fpm/Dockerfile index 5172454..5b07dea 100644 --- a/2021.01/fpm/Dockerfile +++ b/2021.01/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 76ccaf0..d60839f 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index a480e97..e930b10 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index 7096e8e..1b58f0d 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index 17fa573..1222192 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index 599f7f3..b568804 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index 8f19f28..77d01da 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile index 1d5afdc..65d0871 100644 --- a/2021.09-dev/apache/Dockerfile +++ b/2021.09-dev/apache/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile index c62466e..7e039e7 100644 --- a/2021.09-dev/fpm-alpine/Dockerfile +++ b/2021.09-dev/fpm-alpine/Dockerfile @@ -54,7 +54,7 @@ RUN set -ex; \ pecl install APCu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile index aba8978..775997e 100644 --- a/2021.09-dev/fpm/Dockerfile +++ b/2021.09-dev/fpm/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex; \ pecl install apcu-5.1.20; \ pecl install memcached-3.1.5; \ pecl install redis-5.3.4; \ - pecl install imagick-3.5.0; \ + pecl install imagick-3.5.1; \ \ docker-php-ext-enable \ apcu \ From b8c192e71100ed20d2c49acb6be70ea72570456e Mon Sep 17 00:00:00 2001 From: GitHub Workflow Date: Sun, 29 Aug 2021 01:28:42 +0000 Subject: [PATCH 07/22] Runs update.sh --- 2021.09-rc/apache/Dockerfile | 139 +++++++++++++++++ 2021.09-rc/apache/config/00apcu.config.php | 12 ++ 2021.09-rc/apache/config/01redis.config.php | 15 ++ 2021.09-rc/apache/config/zz-docker.config.php | 68 ++++++++ 2021.09-rc/apache/cron.sh | 14 ++ 2021.09-rc/apache/entrypoint-dev.sh | 69 +++++++++ 2021.09-rc/apache/entrypoint.sh | 145 ++++++++++++++++++ 2021.09-rc/apache/setup_msmtp.sh | 46 ++++++ 2021.09-rc/apache/upgrade.exclude | 10 ++ 2021.09-rc/fpm-alpine/Dockerfile | 105 +++++++++++++ .../fpm-alpine/config/00apcu.config.php | 12 ++ .../fpm-alpine/config/01redis.config.php | 15 ++ .../fpm-alpine/config/zz-docker.config.php | 68 ++++++++ 2021.09-rc/fpm-alpine/cron.sh | 14 ++ 2021.09-rc/fpm-alpine/entrypoint-dev.sh | 69 +++++++++ 2021.09-rc/fpm-alpine/entrypoint.sh | 145 ++++++++++++++++++ 2021.09-rc/fpm-alpine/setup_msmtp.sh | 46 ++++++ 2021.09-rc/fpm-alpine/upgrade.exclude | 10 ++ 2021.09-rc/fpm/Dockerfile | 130 ++++++++++++++++ 2021.09-rc/fpm/config/00apcu.config.php | 12 ++ 2021.09-rc/fpm/config/01redis.config.php | 15 ++ 2021.09-rc/fpm/config/zz-docker.config.php | 68 ++++++++ 2021.09-rc/fpm/cron.sh | 14 ++ 2021.09-rc/fpm/entrypoint-dev.sh | 69 +++++++++ 2021.09-rc/fpm/entrypoint.sh | 145 ++++++++++++++++++ 2021.09-rc/fpm/setup_msmtp.sh | 46 ++++++ 2021.09-rc/fpm/upgrade.exclude | 10 ++ 27 files changed, 1511 insertions(+) create mode 100644 2021.09-rc/apache/Dockerfile create mode 100644 2021.09-rc/apache/config/00apcu.config.php create mode 100644 2021.09-rc/apache/config/01redis.config.php create mode 100644 2021.09-rc/apache/config/zz-docker.config.php create mode 100755 2021.09-rc/apache/cron.sh create mode 100755 2021.09-rc/apache/entrypoint-dev.sh create mode 100755 2021.09-rc/apache/entrypoint.sh create mode 100644 2021.09-rc/apache/setup_msmtp.sh create mode 100644 2021.09-rc/apache/upgrade.exclude create mode 100644 2021.09-rc/fpm-alpine/Dockerfile create mode 100644 2021.09-rc/fpm-alpine/config/00apcu.config.php create mode 100644 2021.09-rc/fpm-alpine/config/01redis.config.php create mode 100644 2021.09-rc/fpm-alpine/config/zz-docker.config.php create mode 100755 2021.09-rc/fpm-alpine/cron.sh create mode 100755 2021.09-rc/fpm-alpine/entrypoint-dev.sh create mode 100755 2021.09-rc/fpm-alpine/entrypoint.sh create mode 100644 2021.09-rc/fpm-alpine/setup_msmtp.sh create mode 100644 2021.09-rc/fpm-alpine/upgrade.exclude create mode 100644 2021.09-rc/fpm/Dockerfile create mode 100644 2021.09-rc/fpm/config/00apcu.config.php create mode 100644 2021.09-rc/fpm/config/01redis.config.php create mode 100644 2021.09-rc/fpm/config/zz-docker.config.php create mode 100755 2021.09-rc/fpm/cron.sh create mode 100755 2021.09-rc/fpm/entrypoint-dev.sh create mode 100755 2021.09-rc/fpm/entrypoint.sh create mode 100644 2021.09-rc/fpm/setup_msmtp.sh create mode 100644 2021.09-rc/fpm/upgrade.exclude diff --git a/2021.09-rc/apache/Dockerfile b/2021.09-rc/apache/Dockerfile new file mode 100644 index 0000000..5d393c2 --- /dev/null +++ b/2021.09-rc/apache/Dockerfile @@ -0,0 +1,139 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.3-apache-buster + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + msmtp \ +# For tini installation + gnupg dirmngr \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# Add tini for reaping processes +ENV TINI_VERSION v0.19.0 +RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ + && mkdir ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && 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; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + mariadb-client \ + bash \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmagick++-dev \ + libmemcached-dev \ + libgraphicsmagick1-dev \ + libfreetype6-dev \ + librsvg2-2 \ + libzip-dev \ + libldap2-dev \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-configure ldap \ + --with-libdir=lib/$debMultiarch/ \ + ;\ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + ctype \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install apcu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.1; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { print $3 }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + +RUN set -ex;\ + a2enmod rewrite remoteip ;\ + {\ + echo RemoteIPHeader X-Real-IP ;\ + echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ + echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ + echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ + } > /etc/apache2/conf-available/remoteip.conf;\ + a2enconf remoteip + +ENV FRIENDICA_VERSION "2021.09-rc" +ENV FRIENDICA_ADDONS "2021.09-rc" + + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint-dev.sh"] +CMD ["apache2-foreground"] diff --git a/2021.09-rc/apache/config/00apcu.config.php b/2021.09-rc/apache/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.09-rc/apache/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.09-rc/apache/config/01redis.config.php b/2021.09-rc/apache/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.09-rc/apache/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.09-rc/apache/config/zz-docker.config.php b/2021.09-rc/apache/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.09-rc/apache/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.09-rc/apache/cron.sh b/2021.09-rc/apache/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.09-rc/apache/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.09-rc/apache/entrypoint-dev.sh b/2021.09-rc/apache/entrypoint-dev.sh new file mode 100755 index 0000000..08c3c13 --- /dev/null +++ b/2021.09-rc/apache/entrypoint-dev.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +# checks if the branch and repository exists +check_branch() { + repo=${1:-} + branch=${2:-} + git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null + [ "$?" -eq "0" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + friendica_git="${FRIENDICA_VERSION}" + addons_git="${FRIENDICA_ADDONS}" + friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" + friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" + + if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + # Check if the branches exist before wiping the + if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then + echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." + + # Removing the whole directory first + rm -fr /usr/src/friendica + git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica + + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon + + echo "Download finished" + + if [ ! -f /usr/src/friendica/VERSION ]; then + echo "Couldn't clone repository" + exit 1 + fi + + /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica + return 0 + + else + if check_branch "$friendica_repo" "$friendica_git"; then + echo "$friendica_repo/$friendica_git is not valid." + else + echo "$friendica_addons_repo/$addons_git is not valid." + fi + echo "Using old version." + return 1 + + fi +} + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + # cloning from git is just possible for develop or Release Candidate + if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then + # just clone & check if it's a new install or upgrade + clone_develop + fi +fi + +exec /entrypoint.sh "$@" diff --git a/2021.09-rc/apache/entrypoint.sh b/2021.09-rc/apache/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.09-rc/apache/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.09-rc/apache/setup_msmtp.sh b/2021.09-rc/apache/setup_msmtp.sh new file mode 100644 index 0000000..b14c097 --- /dev/null +++ b/2021.09-rc/apache/setup_msmtp.sh @@ -0,0 +1,46 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + + echo "Setup finished" +fi diff --git a/2021.09-rc/apache/upgrade.exclude b/2021.09-rc/apache/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.09-rc/apache/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.09-rc/fpm-alpine/Dockerfile b/2021.09-rc/fpm-alpine/Dockerfile new file mode 100644 index 0000000..3545fc5 --- /dev/null +++ b/2021.09-rc/fpm-alpine/Dockerfile @@ -0,0 +1,105 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template +FROM php:7.3-fpm-alpine + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + apk add --no-cache \ + rsync \ + git \ +# For mail() support + msmtp \ + shadow \ + tini; + +# install the PHP extensions we need +# see https://friendi.ca/resources/requirements/ +RUN set -ex; \ + \ + apk add --no-cache --virtual .build-deps \ + mariadb-client \ + bash \ + $PHPIZE_DEPS \ + libpng-dev \ + libjpeg-turbo-dev \ + imagemagick-dev \ + libtool \ + libmemcached-dev \ + cyrus-sasl-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + librsvg \ + pcre-dev \ + libzip-dev \ + icu-dev \ + openldap-dev \ + ; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + \ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install APCu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.1; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ + apk del --no-network .build-deps; + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +ENV FRIENDICA_VERSION "2021.09-rc" +ENV FRIENDICA_ADDONS "2021.09-rc" + + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint-dev.sh"] +CMD ["php-fpm"] diff --git a/2021.09-rc/fpm-alpine/config/00apcu.config.php b/2021.09-rc/fpm-alpine/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.09-rc/fpm-alpine/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.09-rc/fpm-alpine/config/01redis.config.php b/2021.09-rc/fpm-alpine/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.09-rc/fpm-alpine/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.09-rc/fpm-alpine/config/zz-docker.config.php b/2021.09-rc/fpm-alpine/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.09-rc/fpm-alpine/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.09-rc/fpm-alpine/cron.sh b/2021.09-rc/fpm-alpine/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.09-rc/fpm-alpine/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.09-rc/fpm-alpine/entrypoint-dev.sh b/2021.09-rc/fpm-alpine/entrypoint-dev.sh new file mode 100755 index 0000000..08c3c13 --- /dev/null +++ b/2021.09-rc/fpm-alpine/entrypoint-dev.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +# checks if the branch and repository exists +check_branch() { + repo=${1:-} + branch=${2:-} + git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null + [ "$?" -eq "0" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + friendica_git="${FRIENDICA_VERSION}" + addons_git="${FRIENDICA_ADDONS}" + friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" + friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" + + if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + # Check if the branches exist before wiping the + if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then + echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." + + # Removing the whole directory first + rm -fr /usr/src/friendica + git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica + + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon + + echo "Download finished" + + if [ ! -f /usr/src/friendica/VERSION ]; then + echo "Couldn't clone repository" + exit 1 + fi + + /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica + return 0 + + else + if check_branch "$friendica_repo" "$friendica_git"; then + echo "$friendica_repo/$friendica_git is not valid." + else + echo "$friendica_addons_repo/$addons_git is not valid." + fi + echo "Using old version." + return 1 + + fi +} + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + # cloning from git is just possible for develop or Release Candidate + if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then + # just clone & check if it's a new install or upgrade + clone_develop + fi +fi + +exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm-alpine/entrypoint.sh b/2021.09-rc/fpm-alpine/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.09-rc/fpm-alpine/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.09-rc/fpm-alpine/setup_msmtp.sh b/2021.09-rc/fpm-alpine/setup_msmtp.sh new file mode 100644 index 0000000..b14c097 --- /dev/null +++ b/2021.09-rc/fpm-alpine/setup_msmtp.sh @@ -0,0 +1,46 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + + echo "Setup finished" +fi diff --git a/2021.09-rc/fpm-alpine/upgrade.exclude b/2021.09-rc/fpm-alpine/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.09-rc/fpm-alpine/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file diff --git a/2021.09-rc/fpm/Dockerfile b/2021.09-rc/fpm/Dockerfile new file mode 100644 index 0000000..f174ccb --- /dev/null +++ b/2021.09-rc/fpm/Dockerfile @@ -0,0 +1,130 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.3-fpm-buster + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + msmtp \ +# For tini installation + gnupg dirmngr \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# Add tini for reaping processes +ENV TINI_VERSION v0.19.0 +RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ + && mkdir ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && 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; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + mariadb-client \ + bash \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmagick++-dev \ + libmemcached-dev \ + libgraphicsmagick1-dev \ + libfreetype6-dev \ + librsvg2-2 \ + libzip-dev \ + libldap2-dev \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + \ + docker-php-ext-configure gd \ + --with-gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-configure ldap \ + --with-libdir=lib/$debMultiarch/ \ + ;\ + docker-php-ext-install -j "$(nproc)" \ + pdo_mysql \ + gd \ + zip \ + opcache \ + ctype \ + pcntl \ + ldap \ + ; \ + \ +# pecl will claim success even if one install fails, so we need to perform each install separately + pecl install apcu-5.1.20; \ + pecl install memcached-3.1.5; \ + pecl install redis-5.3.4; \ + pecl install imagick-3.5.1; \ + \ + docker-php-ext-enable \ + apcu \ + memcached \ + redis \ + imagick \ + ; \ + \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { print $3 }' \ + | sort -u \ + | xargs -r dpkg-query -S \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +# set recommended PHP.ini settings +RUN set -ex; \ + { \ + echo 'opcache.enable=1' ; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=10000'; \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.save_comments=1'; \ + echo 'opcache.revalidte_freq=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ + \ + echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ + \ + echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ + \ + mkdir /var/www/data; \ + chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +ENV FRIENDICA_VERSION "2021.09-rc" +ENV FRIENDICA_ADDONS "2021.09-rc" + + +COPY *.sh upgrade.exclude / +COPY config/* /usr/src/friendica/config/ + +ENTRYPOINT ["/entrypoint-dev.sh"] +CMD ["php-fpm"] diff --git a/2021.09-rc/fpm/config/00apcu.config.php b/2021.09-rc/fpm/config/00apcu.config.php new file mode 100644 index 0000000..d6dac4f --- /dev/null +++ b/2021.09-rc/fpm/config/00apcu.config.php @@ -0,0 +1,12 @@ + [ + 'cache_driver' => 'apcu', + 'session_handler' => 'cache', + ], +]; diff --git a/2021.09-rc/fpm/config/01redis.config.php b/2021.09-rc/fpm/config/01redis.config.php new file mode 100644 index 0000000..1a43c95 --- /dev/null +++ b/2021.09-rc/fpm/config/01redis.config.php @@ -0,0 +1,15 @@ + [ + 'lock_driver' => 'redis', + 'redis_host' => getenv('REDIS_HOST'), + 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), + 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), + 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), + ], + ]; +} else { + return []; +} diff --git a/2021.09-rc/fpm/config/zz-docker.config.php b/2021.09-rc/fpm/config/zz-docker.config.php new file mode 100644 index 0000000..49ca5bd --- /dev/null +++ b/2021.09-rc/fpm/config/zz-docker.config.php @@ -0,0 +1,68 @@ + [ + // Necessary because otherwise the daemon isn't working + 'pidfile' => '/var/run/friendica.pid', + + 'logfile' => '/var/www/html/friendica.log', + 'loglevel' => 'notice', + ], + 'storage' => [ + 'filesystem_path' => '/var/www/html/storage', + ], +]; + +if (getenv('FRIENDICA_TZ')) { + $config['config']['timezone'] = getenv('FRIENDICA_TZ'); +} + +if (getenv('FRIENDICA_LANG')) { + $config['config']['language'] = getenv('FRIENDICA_LANG'); +} + +if (getenv('FRIENDICA_ADMIN_MAIL')) { + $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); +} + +if (getenv('FRIENDICA_SITENAME')) { + $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); +} + +if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { + $config['system']['disable_url_validation'] = true; + $config['system']['disable_email_validation'] = true; +} + +if (!empty(getenv('FRIENDICA_DATA'))) { + $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; + + if (!empty(getenv('FRIENDICA_DATA_DIR'))) { + $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); + } +} + +if (!empty(getenv('FRIENDICA_DEBUGGING'))) { + $config['system']['debugging'] = true; + if (!empty(getenv('FRIENDICA_LOGFILE'))) { + $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); + } + if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { + $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); + } +} + +if (!empty(getenv('SMTP_DOMAIN'))) { + $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; + + $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); +} + +return $config; diff --git a/2021.09-rc/fpm/cron.sh b/2021.09-rc/fpm/cron.sh new file mode 100755 index 0000000..f899df9 --- /dev/null +++ b/2021.09-rc/fpm/cron.sh @@ -0,0 +1,14 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/bin/daemon.php ]; do + sleep 1 +done + +echo "Waiting for MySQL $MYSQL_HOST initialization..." +if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then + sh /setup_msmtp.sh + 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/2021.09-rc/fpm/entrypoint-dev.sh b/2021.09-rc/fpm/entrypoint-dev.sh new file mode 100755 index 0000000..08c3c13 --- /dev/null +++ b/2021.09-rc/fpm/entrypoint-dev.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +# checks if the branch and repository exists +check_branch() { + repo=${1:-} + branch=${2:-} + git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null + [ "$?" -eq "0" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + friendica_git="${FRIENDICA_VERSION}" + addons_git="${FRIENDICA_ADDONS}" + friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" + friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" + + if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + # Check if the branches exist before wiping the + if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then + echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." + + # Removing the whole directory first + rm -fr /usr/src/friendica + git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica + + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon + + echo "Download finished" + + if [ ! -f /usr/src/friendica/VERSION ]; then + echo "Couldn't clone repository" + exit 1 + fi + + /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica + return 0 + + else + if check_branch "$friendica_repo" "$friendica_git"; then + echo "$friendica_repo/$friendica_git is not valid." + else + echo "$friendica_addons_repo/$addons_git is not valid." + fi + echo "Using old version." + return 1 + + fi +} + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + # cloning from git is just possible for develop or Release Candidate + if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then + # just clone & check if it's a new install or upgrade + clone_develop + fi +fi + +exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm/entrypoint.sh b/2021.09-rc/fpm/entrypoint.sh new file mode 100755 index 0000000..fa51564 --- /dev/null +++ b/2021.09-rc/fpm/entrypoint.sh @@ -0,0 +1,145 @@ +#!/bin/sh +set -eu + +# run an command with the www-data user +run_as() { + set -- -c "cd /var/www/html; $*" + if [ "$(id -u)" -eq 0 ]; then + su - www-data -s /bin/sh "$@" + else + sh "$@" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] +} + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +sh /setup_msmtp.sh + +# just check if we execute apache or php-fpm +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then + installed_version="0.0.0.0" + if [ -f /var/www/html/VERSION ]; then + installed_version="$(cat /var/www/html/VERSION)" + fi + + image_version="$(cat /usr/src/friendica/VERSION)" + + # no downgrading possible + if version_greater "$installed_version" "$image_version"; then + echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" + exit 1 + fi + + # check it just in case the version is greater or if we force the upgrade + if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then + echo "Initializing Friendica $image_version ..." + + if [ "$installed_version" != "0.0.0.0" ]; then + echo "Upgrading Friendica from $installed_version ..." + fi + + if [ "$(id -u)" -eq 0 ]; then + rsync_options="-rlDog --chown=www-data:www-data" + else + rsync_options="-rlD" + fi + + rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ + + # Update docker-based config files, but never delete other config files + rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ + + # In case there is no .htaccess, copy it from the default dist file + if [ ! -f "/var/www/html/.htaccess" ]; then + cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" + fi + + if [ -d /var/www/html/view/smarty3 ]; then + chmod -R 777 /var/www/html/view/smarty3 + fi + echo "Initializing finished" + + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" + + file_env FRIENDICA_ADMIN_MAIL + + file_env MYSQL_DATABASE + file_env MYSQL_USER + file_env MYSQL_PASSWORD + + install=false + if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then + echo "Installation with environment variables" + + FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} + FRIENDICA_LANG=${FRIENDICA_LANG:-en} + MYSQL_PORT=${MYSQL_PORT:-3306} + + # shellcheck disable=SC2016 + install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' + + # shellcheck disable=SC2016 + install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' + install=true + fi + + if [ "$install" = true ]; then + echo "Waiting for MySQL $MYSQL_HOST initialization..." + if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then + + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" + + rm -fr /var/www/html/view/smarty3/compiled + + # load other config files (*.config.php) to the config folder + if [ -d "/usr/src/config" ]; then + rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ + fi + + echo "Installation finished" + else + echo "[ERROR] Waited 300 seconds, no response" >&2 + fi + else + echo "Running web-based installer on first connect!" + fi + # upgrade + else + echo "Upgrading Friendica ..." + run_as 'php /var/www/html/bin/console.php dbstructure update -f' + echo "Upgrading finished" + fi + fi +fi + +exec "$@" diff --git a/2021.09-rc/fpm/setup_msmtp.sh b/2021.09-rc/fpm/setup_msmtp.sh new file mode 100644 index 0000000..b14c097 --- /dev/null +++ b/2021.09-rc/fpm/setup_msmtp.sh @@ -0,0 +1,46 @@ +#!/bin/sh +set -eu + +if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." + + smtp_from="${SMTP_FROM:=no-reply}" + smtp_auth="${SMTP_AUTH:=on}" + + # Setup MSMTP + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root + usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + + # add possible mail-senders + { + echo "www-data: $smtp_from@$SMTP_DOMAIN" + echo "root: $smtp_from@$SMTP_DOMAIN" + } >/etc/aliases + + # create msmtp settings + { + echo "account default" + echo "host $SMTP" + if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi + echo "from \"$smtp_from@$SMTP_DOMAIN\"" + echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames + if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi + echo "logfile /var/log/msmtp.log" + echo "aliases /etc/aliases" + } >/etc/msmtprc + + # enable msmtp setup + { + echo sendmail_path = "/usr/bin/msmtp -t"; + } > /usr/local/etc/php/conf.d/sendmail.ini + + # reload php-config per signal + kill -USR2 1 + + echo "Setup finished" +fi diff --git a/2021.09-rc/fpm/upgrade.exclude b/2021.09-rc/fpm/upgrade.exclude new file mode 100644 index 0000000..2fb6533 --- /dev/null +++ b/2021.09-rc/fpm/upgrade.exclude @@ -0,0 +1,10 @@ +/.git/ +/photo/ +/proxy/ +/.htconfig.php +/.htaccess +/home.* +/config/ +/storage/ +/log/ +*.log \ No newline at end of file From 7661882be85f7e44fceed0c6e71d82e01835317e Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 28 Aug 2021 20:54:48 +0200 Subject: [PATCH 08/22] Revert "Activate msmtp just in case there's a config" This reverts commit 3d49fcaabd45795d1d8eb1330ff815f9e3e08a91. --- 2020.09/apache/Dockerfile | 4 ++++ 2020.09/apache/setup_msmtp.sh | 8 -------- 2020.09/fpm-alpine/Dockerfile | 4 ++++ 2020.09/fpm-alpine/setup_msmtp.sh | 8 -------- 2020.09/fpm/Dockerfile | 4 ++++ 2020.09/fpm/setup_msmtp.sh | 8 -------- 2021.01/apache/Dockerfile | 4 ++++ 2021.01/apache/setup_msmtp.sh | 8 -------- 2021.01/fpm-alpine/Dockerfile | 4 ++++ 2021.01/fpm-alpine/setup_msmtp.sh | 8 -------- 2021.01/fpm/Dockerfile | 4 ++++ 2021.01/fpm/setup_msmtp.sh | 8 -------- 2021.04/apache/Dockerfile | 4 ++++ 2021.04/apache/setup_msmtp.sh | 8 -------- 2021.04/fpm-alpine/Dockerfile | 4 ++++ 2021.04/fpm-alpine/setup_msmtp.sh | 8 -------- 2021.04/fpm/Dockerfile | 4 ++++ 2021.04/fpm/setup_msmtp.sh | 8 -------- 2021.07/apache/Dockerfile | 4 ++++ 2021.07/apache/setup_msmtp.sh | 8 -------- 2021.07/fpm-alpine/Dockerfile | 4 ++++ 2021.07/fpm-alpine/setup_msmtp.sh | 8 -------- 2021.07/fpm/Dockerfile | 4 ++++ 2021.07/fpm/setup_msmtp.sh | 8 -------- 2021.09-dev/apache/Dockerfile | 4 ++++ 2021.09-dev/apache/setup_msmtp.sh | 8 -------- 2021.09-dev/fpm-alpine/Dockerfile | 4 ++++ 2021.09-dev/fpm-alpine/setup_msmtp.sh | 8 -------- 2021.09-dev/fpm/Dockerfile | 4 ++++ 2021.09-dev/fpm/setup_msmtp.sh | 8 -------- Dockerfile-alpine.template | 4 ++++ Dockerfile-debian.template | 4 ++++ docker-setup_msmtp.sh | 8 -------- 33 files changed, 68 insertions(+), 128 deletions(-) diff --git a/2020.09/apache/Dockerfile b/2020.09/apache/Dockerfile index 941f5d4..e185196 100644 --- a/2020.09/apache/Dockerfile +++ b/2020.09/apache/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2020.09/apache/setup_msmtp.sh b/2020.09/apache/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2020.09/apache/setup_msmtp.sh +++ b/2020.09/apache/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2020.09/fpm-alpine/Dockerfile b/2020.09/fpm-alpine/Dockerfile index fc516e4..e634479 100644 --- a/2020.09/fpm-alpine/Dockerfile +++ b/2020.09/fpm-alpine/Dockerfile @@ -83,6 +83,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2020.09/fpm-alpine/setup_msmtp.sh b/2020.09/fpm-alpine/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2020.09/fpm-alpine/setup_msmtp.sh +++ b/2020.09/fpm-alpine/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2020.09/fpm/Dockerfile b/2020.09/fpm/Dockerfile index 6151a09..e589507 100644 --- a/2020.09/fpm/Dockerfile +++ b/2020.09/fpm/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2020.09/fpm/setup_msmtp.sh b/2020.09/fpm/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2020.09/fpm/setup_msmtp.sh +++ b/2020.09/fpm/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.01/apache/Dockerfile b/2021.01/apache/Dockerfile index 71e71e2..65b9acf 100644 --- a/2021.01/apache/Dockerfile +++ b/2021.01/apache/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.01/apache/setup_msmtp.sh b/2021.01/apache/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.01/apache/setup_msmtp.sh +++ b/2021.01/apache/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.01/fpm-alpine/Dockerfile b/2021.01/fpm-alpine/Dockerfile index cfe0da4..f880a46 100644 --- a/2021.01/fpm-alpine/Dockerfile +++ b/2021.01/fpm-alpine/Dockerfile @@ -83,6 +83,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.01/fpm-alpine/setup_msmtp.sh b/2021.01/fpm-alpine/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.01/fpm-alpine/setup_msmtp.sh +++ b/2021.01/fpm-alpine/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.01/fpm/Dockerfile b/2021.01/fpm/Dockerfile index 5b07dea..0423028 100644 --- a/2021.01/fpm/Dockerfile +++ b/2021.01/fpm/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.01/fpm/setup_msmtp.sh b/2021.01/fpm/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.01/fpm/setup_msmtp.sh +++ b/2021.01/fpm/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index d60839f..ca801dc 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.04/apache/setup_msmtp.sh b/2021.04/apache/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.04/apache/setup_msmtp.sh +++ b/2021.04/apache/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index e930b10..69ce070 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -83,6 +83,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.04/fpm-alpine/setup_msmtp.sh b/2021.04/fpm-alpine/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.04/fpm-alpine/setup_msmtp.sh +++ b/2021.04/fpm-alpine/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index 1b58f0d..d35894c 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.04/fpm/setup_msmtp.sh b/2021.04/fpm/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.04/fpm/setup_msmtp.sh +++ b/2021.04/fpm/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index 1222192..3ac9428 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.07/apache/setup_msmtp.sh b/2021.07/apache/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.07/apache/setup_msmtp.sh +++ b/2021.07/apache/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index b568804..4b11f58 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -83,6 +83,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.07/fpm-alpine/setup_msmtp.sh b/2021.07/fpm-alpine/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.07/fpm-alpine/setup_msmtp.sh +++ b/2021.07/fpm-alpine/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index 77d01da..eca45de 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.07/fpm/setup_msmtp.sh b/2021.07/fpm/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.07/fpm/setup_msmtp.sh +++ b/2021.07/fpm/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile index 65d0871..2ee6188 100644 --- a/2021.09-dev/apache/Dockerfile +++ b/2021.09-dev/apache/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-dev/apache/setup_msmtp.sh b/2021.09-dev/apache/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.09-dev/apache/setup_msmtp.sh +++ b/2021.09-dev/apache/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile index 7e039e7..337e8b3 100644 --- a/2021.09-dev/fpm-alpine/Dockerfile +++ b/2021.09-dev/fpm-alpine/Dockerfile @@ -83,6 +83,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-dev/fpm-alpine/setup_msmtp.sh b/2021.09-dev/fpm-alpine/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.09-dev/fpm-alpine/setup_msmtp.sh +++ b/2021.09-dev/fpm-alpine/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile index 775997e..303b218 100644 --- a/2021.09-dev/fpm/Dockerfile +++ b/2021.09-dev/fpm/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-dev/fpm/setup_msmtp.sh b/2021.09-dev/fpm/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.09-dev/fpm/setup_msmtp.sh +++ b/2021.09-dev/fpm/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 645a470..8132fd3 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -82,6 +82,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 1203573..8e35e6e 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -107,6 +107,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/docker-setup_msmtp.sh b/docker-setup_msmtp.sh index b14c097..b90c42c 100644 --- a/docker-setup_msmtp.sh +++ b/docker-setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi From d8af2bd66c0c204faf322e8c1eb18b8793310f8a Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 28 Aug 2021 20:55:41 +0200 Subject: [PATCH 09/22] Set min version to 2021.04 --- update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.sh b/update.sh index cc82e46..32b90d8 100755 --- a/update.sh +++ b/update.sh @@ -92,7 +92,7 @@ variants=( fpm-alpine ) -min_version='2020.09' +min_version='2021.04' # version_greater_or_equal A B returns whether A >= B function version_greater_or_equal() { From 54f1bdd51217aaba406a28158cb6d4c7784e5c5d Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 29 Aug 2021 13:16:37 +0200 Subject: [PATCH 10/22] Remove old versions --- 2020.09/apache/Dockerfile | 156 ------------------ 2020.09/apache/config/00apcu.config.php | 12 -- 2020.09/apache/config/01redis.config.php | 15 -- 2020.09/apache/config/zz-docker.config.php | 68 -------- 2020.09/apache/cron.sh | 14 -- 2020.09/apache/entrypoint.sh | 145 ---------------- 2020.09/apache/setup_msmtp.sh | 38 ----- 2020.09/apache/upgrade.exclude | 10 -- 2020.09/fpm-alpine/Dockerfile | 122 -------------- 2020.09/fpm-alpine/config/00apcu.config.php | 12 -- 2020.09/fpm-alpine/config/01redis.config.php | 15 -- .../fpm-alpine/config/zz-docker.config.php | 68 -------- 2020.09/fpm-alpine/cron.sh | 14 -- 2020.09/fpm-alpine/entrypoint.sh | 145 ---------------- 2020.09/fpm-alpine/setup_msmtp.sh | 38 ----- 2020.09/fpm-alpine/upgrade.exclude | 10 -- 2020.09/fpm/Dockerfile | 147 ----------------- 2020.09/fpm/config/00apcu.config.php | 12 -- 2020.09/fpm/config/01redis.config.php | 15 -- 2020.09/fpm/config/zz-docker.config.php | 68 -------- 2020.09/fpm/cron.sh | 14 -- 2020.09/fpm/entrypoint.sh | 145 ---------------- 2020.09/fpm/setup_msmtp.sh | 38 ----- 2020.09/fpm/upgrade.exclude | 10 -- 2021.01/apache/Dockerfile | 156 ------------------ 2021.01/apache/config/00apcu.config.php | 12 -- 2021.01/apache/config/01redis.config.php | 15 -- 2021.01/apache/config/zz-docker.config.php | 68 -------- 2021.01/apache/cron.sh | 14 -- 2021.01/apache/entrypoint.sh | 145 ---------------- 2021.01/apache/setup_msmtp.sh | 38 ----- 2021.01/apache/upgrade.exclude | 10 -- 2021.01/fpm-alpine/Dockerfile | 122 -------------- 2021.01/fpm-alpine/config/00apcu.config.php | 12 -- 2021.01/fpm-alpine/config/01redis.config.php | 15 -- .../fpm-alpine/config/zz-docker.config.php | 68 -------- 2021.01/fpm-alpine/cron.sh | 14 -- 2021.01/fpm-alpine/entrypoint.sh | 145 ---------------- 2021.01/fpm-alpine/setup_msmtp.sh | 38 ----- 2021.01/fpm-alpine/upgrade.exclude | 10 -- 2021.01/fpm/Dockerfile | 147 ----------------- 2021.01/fpm/config/00apcu.config.php | 12 -- 2021.01/fpm/config/01redis.config.php | 15 -- 2021.01/fpm/config/zz-docker.config.php | 68 -------- 2021.01/fpm/cron.sh | 14 -- 2021.01/fpm/entrypoint.sh | 145 ---------------- 2021.01/fpm/setup_msmtp.sh | 38 ----- 2021.01/fpm/upgrade.exclude | 10 -- 2021.09-rc/apache/Dockerfile | 4 + 2021.09-rc/apache/setup_msmtp.sh | 8 - 2021.09-rc/fpm-alpine/Dockerfile | 4 + 2021.09-rc/fpm-alpine/setup_msmtp.sh | 8 - 2021.09-rc/fpm/Dockerfile | 4 + 2021.09-rc/fpm/setup_msmtp.sh | 8 - 54 files changed, 12 insertions(+), 2686 deletions(-) delete mode 100644 2020.09/apache/Dockerfile delete mode 100644 2020.09/apache/config/00apcu.config.php delete mode 100644 2020.09/apache/config/01redis.config.php delete mode 100644 2020.09/apache/config/zz-docker.config.php delete mode 100755 2020.09/apache/cron.sh delete mode 100755 2020.09/apache/entrypoint.sh delete mode 100644 2020.09/apache/setup_msmtp.sh delete mode 100644 2020.09/apache/upgrade.exclude delete mode 100644 2020.09/fpm-alpine/Dockerfile delete mode 100644 2020.09/fpm-alpine/config/00apcu.config.php delete mode 100644 2020.09/fpm-alpine/config/01redis.config.php delete mode 100644 2020.09/fpm-alpine/config/zz-docker.config.php delete mode 100755 2020.09/fpm-alpine/cron.sh delete mode 100755 2020.09/fpm-alpine/entrypoint.sh delete mode 100644 2020.09/fpm-alpine/setup_msmtp.sh delete mode 100644 2020.09/fpm-alpine/upgrade.exclude delete mode 100644 2020.09/fpm/Dockerfile delete mode 100644 2020.09/fpm/config/00apcu.config.php delete mode 100644 2020.09/fpm/config/01redis.config.php delete mode 100644 2020.09/fpm/config/zz-docker.config.php delete mode 100755 2020.09/fpm/cron.sh delete mode 100755 2020.09/fpm/entrypoint.sh delete mode 100644 2020.09/fpm/setup_msmtp.sh delete mode 100644 2020.09/fpm/upgrade.exclude delete mode 100644 2021.01/apache/Dockerfile delete mode 100644 2021.01/apache/config/00apcu.config.php delete mode 100644 2021.01/apache/config/01redis.config.php delete mode 100644 2021.01/apache/config/zz-docker.config.php delete mode 100755 2021.01/apache/cron.sh delete mode 100755 2021.01/apache/entrypoint.sh delete mode 100644 2021.01/apache/setup_msmtp.sh delete mode 100644 2021.01/apache/upgrade.exclude delete mode 100644 2021.01/fpm-alpine/Dockerfile delete mode 100644 2021.01/fpm-alpine/config/00apcu.config.php delete mode 100644 2021.01/fpm-alpine/config/01redis.config.php delete mode 100644 2021.01/fpm-alpine/config/zz-docker.config.php delete mode 100755 2021.01/fpm-alpine/cron.sh delete mode 100755 2021.01/fpm-alpine/entrypoint.sh delete mode 100644 2021.01/fpm-alpine/setup_msmtp.sh delete mode 100644 2021.01/fpm-alpine/upgrade.exclude delete mode 100644 2021.01/fpm/Dockerfile delete mode 100644 2021.01/fpm/config/00apcu.config.php delete mode 100644 2021.01/fpm/config/01redis.config.php delete mode 100644 2021.01/fpm/config/zz-docker.config.php delete mode 100755 2021.01/fpm/cron.sh delete mode 100755 2021.01/fpm/entrypoint.sh delete mode 100644 2021.01/fpm/setup_msmtp.sh delete mode 100644 2021.01/fpm/upgrade.exclude diff --git a/2020.09/apache/Dockerfile b/2020.09/apache/Dockerfile deleted file mode 100644 index e185196..0000000 --- a/2020.09/apache/Dockerfile +++ /dev/null @@ -1,156 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-apache-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - -RUN set -ex;\ - a2enmod rewrite remoteip ;\ - {\ - echo RemoteIPHeader X-Real-IP ;\ - echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ - echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ - echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ - } > /etc/apache2/conf-available/remoteip.conf;\ - a2enconf remoteip - -ENV FRIENDICA_VERSION "2020.09-1" -ENV FRIENDICA_ADDONS "2020.09-1" - -RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["apache2-foreground"] diff --git a/2020.09/apache/config/00apcu.config.php b/2020.09/apache/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2020.09/apache/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2020.09/apache/config/01redis.config.php b/2020.09/apache/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2020.09/apache/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2020.09/apache/config/zz-docker.config.php b/2020.09/apache/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2020.09/apache/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2020.09/apache/cron.sh b/2020.09/apache/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2020.09/apache/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2020.09/apache/entrypoint.sh b/2020.09/apache/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2020.09/apache/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2020.09/apache/setup_msmtp.sh b/2020.09/apache/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2020.09/apache/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2020.09/apache/upgrade.exclude b/2020.09/apache/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2020.09/apache/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2020.09/fpm-alpine/Dockerfile b/2020.09/fpm-alpine/Dockerfile deleted file mode 100644 index e634479..0000000 --- a/2020.09/fpm-alpine/Dockerfile +++ /dev/null @@ -1,122 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:7.3-fpm-alpine - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - apk add --no-cache \ - rsync \ - git \ -# For mail() support - msmtp \ - shadow \ - tini; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - apk add --no-cache --virtual .build-deps \ - mariadb-client \ - bash \ - $PHPIZE_DEPS \ - libpng-dev \ - libjpeg-turbo-dev \ - imagemagick-dev \ - libtool \ - libmemcached-dev \ - cyrus-sasl-dev \ - libjpeg-turbo-dev \ - freetype-dev \ - librsvg \ - pcre-dev \ - libzip-dev \ - icu-dev \ - openldap-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install APCu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ - apk del --no-network .build-deps; - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2020.09-1" -ENV FRIENDICA_ADDONS "2020.09-1" - -RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/2020.09/fpm-alpine/config/00apcu.config.php b/2020.09/fpm-alpine/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2020.09/fpm-alpine/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2020.09/fpm-alpine/config/01redis.config.php b/2020.09/fpm-alpine/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2020.09/fpm-alpine/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2020.09/fpm-alpine/config/zz-docker.config.php b/2020.09/fpm-alpine/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2020.09/fpm-alpine/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2020.09/fpm-alpine/cron.sh b/2020.09/fpm-alpine/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2020.09/fpm-alpine/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2020.09/fpm-alpine/entrypoint.sh b/2020.09/fpm-alpine/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2020.09/fpm-alpine/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2020.09/fpm-alpine/setup_msmtp.sh b/2020.09/fpm-alpine/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2020.09/fpm-alpine/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2020.09/fpm-alpine/upgrade.exclude b/2020.09/fpm-alpine/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2020.09/fpm-alpine/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2020.09/fpm/Dockerfile b/2020.09/fpm/Dockerfile deleted file mode 100644 index e589507..0000000 --- a/2020.09/fpm/Dockerfile +++ /dev/null @@ -1,147 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-fpm-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2020.09-1" -ENV FRIENDICA_ADDONS "2020.09-1" - -RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/2020.09/fpm/config/00apcu.config.php b/2020.09/fpm/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2020.09/fpm/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2020.09/fpm/config/01redis.config.php b/2020.09/fpm/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2020.09/fpm/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2020.09/fpm/config/zz-docker.config.php b/2020.09/fpm/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2020.09/fpm/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2020.09/fpm/cron.sh b/2020.09/fpm/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2020.09/fpm/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2020.09/fpm/entrypoint.sh b/2020.09/fpm/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2020.09/fpm/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2020.09/fpm/setup_msmtp.sh b/2020.09/fpm/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2020.09/fpm/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2020.09/fpm/upgrade.exclude b/2020.09/fpm/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2020.09/fpm/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.01/apache/Dockerfile b/2021.01/apache/Dockerfile deleted file mode 100644 index 65b9acf..0000000 --- a/2021.01/apache/Dockerfile +++ /dev/null @@ -1,156 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-apache-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - -RUN set -ex;\ - a2enmod rewrite remoteip ;\ - {\ - echo RemoteIPHeader X-Real-IP ;\ - echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ - echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ - echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ - } > /etc/apache2/conf-available/remoteip.conf;\ - a2enconf remoteip - -ENV FRIENDICA_VERSION "2021.01" -ENV FRIENDICA_ADDONS "2021.01" - -RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["apache2-foreground"] diff --git a/2021.01/apache/config/00apcu.config.php b/2021.01/apache/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.01/apache/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.01/apache/config/01redis.config.php b/2021.01/apache/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.01/apache/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.01/apache/config/zz-docker.config.php b/2021.01/apache/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.01/apache/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.01/apache/cron.sh b/2021.01/apache/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.01/apache/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.01/apache/entrypoint.sh b/2021.01/apache/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.01/apache/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.01/apache/setup_msmtp.sh b/2021.01/apache/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.01/apache/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.01/apache/upgrade.exclude b/2021.01/apache/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.01/apache/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.01/fpm-alpine/Dockerfile b/2021.01/fpm-alpine/Dockerfile deleted file mode 100644 index f880a46..0000000 --- a/2021.01/fpm-alpine/Dockerfile +++ /dev/null @@ -1,122 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:7.3-fpm-alpine - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - apk add --no-cache \ - rsync \ - git \ -# For mail() support - msmtp \ - shadow \ - tini; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - apk add --no-cache --virtual .build-deps \ - mariadb-client \ - bash \ - $PHPIZE_DEPS \ - libpng-dev \ - libjpeg-turbo-dev \ - imagemagick-dev \ - libtool \ - libmemcached-dev \ - cyrus-sasl-dev \ - libjpeg-turbo-dev \ - freetype-dev \ - librsvg \ - pcre-dev \ - libzip-dev \ - icu-dev \ - openldap-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install APCu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ - apk del --no-network .build-deps; - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.01" -ENV FRIENDICA_ADDONS "2021.01" - -RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/2021.01/fpm-alpine/config/00apcu.config.php b/2021.01/fpm-alpine/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.01/fpm-alpine/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.01/fpm-alpine/config/01redis.config.php b/2021.01/fpm-alpine/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.01/fpm-alpine/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.01/fpm-alpine/config/zz-docker.config.php b/2021.01/fpm-alpine/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.01/fpm-alpine/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.01/fpm-alpine/cron.sh b/2021.01/fpm-alpine/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.01/fpm-alpine/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.01/fpm-alpine/entrypoint.sh b/2021.01/fpm-alpine/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.01/fpm-alpine/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.01/fpm-alpine/setup_msmtp.sh b/2021.01/fpm-alpine/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.01/fpm-alpine/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.01/fpm-alpine/upgrade.exclude b/2021.01/fpm-alpine/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.01/fpm-alpine/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.01/fpm/Dockerfile b/2021.01/fpm/Dockerfile deleted file mode 100644 index 0423028..0000000 --- a/2021.01/fpm/Dockerfile +++ /dev/null @@ -1,147 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-fpm-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ - git \ -# For mail() support - msmtp \ -# For tini installation - gnupg dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; - -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.01" -ENV FRIENDICA_ADDONS "2021.01" - -RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/2021.01/fpm/config/00apcu.config.php b/2021.01/fpm/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.01/fpm/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.01/fpm/config/01redis.config.php b/2021.01/fpm/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.01/fpm/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.01/fpm/config/zz-docker.config.php b/2021.01/fpm/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.01/fpm/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.01/fpm/cron.sh b/2021.01/fpm/cron.sh deleted file mode 100755 index f899df9..0000000 --- a/2021.01/fpm/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - 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/2021.01/fpm/entrypoint.sh b/2021.01/fpm/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.01/fpm/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.01/fpm/setup_msmtp.sh b/2021.01/fpm/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.01/fpm/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.01/fpm/upgrade.exclude b/2021.01/fpm/upgrade.exclude deleted file mode 100644 index 2fb6533..0000000 --- a/2021.01/fpm/upgrade.exclude +++ /dev/null @@ -1,10 +0,0 @@ -/.git/ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log \ No newline at end of file diff --git a/2021.09-rc/apache/Dockerfile b/2021.09-rc/apache/Dockerfile index 5d393c2..82af680 100644 --- a/2021.09-rc/apache/Dockerfile +++ b/2021.09-rc/apache/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-rc/apache/setup_msmtp.sh b/2021.09-rc/apache/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.09-rc/apache/setup_msmtp.sh +++ b/2021.09-rc/apache/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.09-rc/fpm-alpine/Dockerfile b/2021.09-rc/fpm-alpine/Dockerfile index 3545fc5..64fa399 100644 --- a/2021.09-rc/fpm-alpine/Dockerfile +++ b/2021.09-rc/fpm-alpine/Dockerfile @@ -83,6 +83,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-rc/fpm-alpine/setup_msmtp.sh b/2021.09-rc/fpm-alpine/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.09-rc/fpm-alpine/setup_msmtp.sh +++ b/2021.09-rc/fpm-alpine/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi diff --git a/2021.09-rc/fpm/Dockerfile b/2021.09-rc/fpm/Dockerfile index f174ccb..00ee3b4 100644 --- a/2021.09-rc/fpm/Dockerfile +++ b/2021.09-rc/fpm/Dockerfile @@ -108,6 +108,10 @@ RUN set -ex; \ echo 'opcache.revalidte_freq=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ \ + { \ + echo sendmail_path = "/usr/bin/msmtp -t"; \ + } > /usr/local/etc/php/conf.d/sendmail.ini; \ + \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ \ echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ diff --git a/2021.09-rc/fpm/setup_msmtp.sh b/2021.09-rc/fpm/setup_msmtp.sh index b14c097..b90c42c 100644 --- a/2021.09-rc/fpm/setup_msmtp.sh +++ b/2021.09-rc/fpm/setup_msmtp.sh @@ -34,13 +34,5 @@ if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" echo "aliases /etc/aliases" } >/etc/msmtprc - # enable msmtp setup - { - echo sendmail_path = "/usr/bin/msmtp -t"; - } > /usr/local/etc/php/conf.d/sendmail.ini - - # reload php-config per signal - kill -USR2 1 - echo "Setup finished" fi From ee990e483762774a241673b91bab9860914a7214 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 3 Sep 2021 21:13:29 +0200 Subject: [PATCH 11/22] Execute cron as www-data --- 2021.04/apache/Dockerfile | 18 +++++------------- 2021.04/apache/cron.sh | 2 +- 2021.04/fpm-alpine/Dockerfile | 28 ++++++++++++++++++++++++++++ 2021.04/fpm-alpine/cron.sh | 2 +- 2021.04/fpm/Dockerfile | 18 +++++------------- 2021.04/fpm/cron.sh | 2 +- 2021.07/apache/Dockerfile | 18 +++++------------- 2021.07/apache/cron.sh | 2 +- 2021.07/fpm-alpine/Dockerfile | 28 ++++++++++++++++++++++++++++ 2021.07/fpm-alpine/cron.sh | 2 +- 2021.07/fpm/Dockerfile | 18 +++++------------- 2021.07/fpm/cron.sh | 2 +- 2021.09-dev/apache/Dockerfile | 18 +++++------------- 2021.09-dev/apache/cron.sh | 2 +- 2021.09-dev/fpm-alpine/Dockerfile | 28 ++++++++++++++++++++++++++++ 2021.09-dev/fpm-alpine/cron.sh | 2 +- 2021.09-dev/fpm/Dockerfile | 18 +++++------------- 2021.09-dev/fpm/cron.sh | 2 +- 2021.09-rc/apache/Dockerfile | 18 +++++------------- 2021.09-rc/apache/cron.sh | 2 +- 2021.09-rc/fpm-alpine/Dockerfile | 28 ++++++++++++++++++++++++++++ 2021.09-rc/fpm-alpine/cron.sh | 2 +- 2021.09-rc/fpm/Dockerfile | 18 +++++------------- 2021.09-rc/fpm/cron.sh | 2 +- Dockerfile-alpine.template | 28 ++++++++++++++++++++++++++++ Dockerfile-debian.template | 18 +++++------------- docker-cron.sh | 2 +- 27 files changed, 198 insertions(+), 130 deletions(-) diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index ca801dc..9c24819 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.04/apache/cron.sh b/2021.04/apache/cron.sh index f899df9..18dced0 100755 --- a/2021.04/apache/cron.sh +++ b/2021.04/apache/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 69ce070..bea2077 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -11,6 +11,34 @@ RUN set -ex; \ shadow \ tini; +ENV GOSU_VERSION 1.14 +RUN set -eux; \ + \ + apk add --no-cache --virtual .gosu-deps \ + ca-certificates \ + dpkg \ + gnupg \ + ; \ + \ + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + \ +# verify the signature + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ + gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ + command -v gpgconf && gpgconf --kill all || :; \ + rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ + \ +# clean up fetch dependencies + apk del --no-network .gosu-deps; \ + \ + chmod +x /usr/local/bin/gosu; \ +# verify that the binary works + gosu --version; \ + gosu nobody true + # install the PHP extensions we need # see https://friendi.ca/resources/requirements/ RUN set -ex; \ diff --git a/2021.04/fpm-alpine/cron.sh b/2021.04/fpm-alpine/cron.sh index f899df9..18dced0 100755 --- a/2021.04/fpm-alpine/cron.sh +++ b/2021.04/fpm-alpine/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index d35894c..a30694e 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.04/fpm/cron.sh b/2021.04/fpm/cron.sh index f899df9..18dced0 100755 --- a/2021.04/fpm/cron.sh +++ b/2021.04/fpm/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index 3ac9428..4417c62 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.07/apache/cron.sh b/2021.07/apache/cron.sh index f899df9..18dced0 100755 --- a/2021.07/apache/cron.sh +++ b/2021.07/apache/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index 4b11f58..b7f2028 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -11,6 +11,34 @@ RUN set -ex; \ shadow \ tini; +ENV GOSU_VERSION 1.14 +RUN set -eux; \ + \ + apk add --no-cache --virtual .gosu-deps \ + ca-certificates \ + dpkg \ + gnupg \ + ; \ + \ + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + \ +# verify the signature + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ + gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ + command -v gpgconf && gpgconf --kill all || :; \ + rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ + \ +# clean up fetch dependencies + apk del --no-network .gosu-deps; \ + \ + chmod +x /usr/local/bin/gosu; \ +# verify that the binary works + gosu --version; \ + gosu nobody true + # install the PHP extensions we need # see https://friendi.ca/resources/requirements/ RUN set -ex; \ diff --git a/2021.07/fpm-alpine/cron.sh b/2021.07/fpm-alpine/cron.sh index f899df9..18dced0 100755 --- a/2021.07/fpm-alpine/cron.sh +++ b/2021.07/fpm-alpine/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index eca45de..25ba84d 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.07/fpm/cron.sh b/2021.07/fpm/cron.sh index f899df9..18dced0 100755 --- a/2021.07/fpm/cron.sh +++ b/2021.07/fpm/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile index 2ee6188..e6b9633 100644 --- a/2021.09-dev/apache/Dockerfile +++ b/2021.09-dev/apache/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.09-dev/apache/cron.sh b/2021.09-dev/apache/cron.sh index f899df9..18dced0 100755 --- a/2021.09-dev/apache/cron.sh +++ b/2021.09-dev/apache/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile index 337e8b3..08852ce 100644 --- a/2021.09-dev/fpm-alpine/Dockerfile +++ b/2021.09-dev/fpm-alpine/Dockerfile @@ -11,6 +11,34 @@ RUN set -ex; \ shadow \ tini; +ENV GOSU_VERSION 1.14 +RUN set -eux; \ + \ + apk add --no-cache --virtual .gosu-deps \ + ca-certificates \ + dpkg \ + gnupg \ + ; \ + \ + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + \ +# verify the signature + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ + gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ + command -v gpgconf && gpgconf --kill all || :; \ + rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ + \ +# clean up fetch dependencies + apk del --no-network .gosu-deps; \ + \ + chmod +x /usr/local/bin/gosu; \ +# verify that the binary works + gosu --version; \ + gosu nobody true + # install the PHP extensions we need # see https://friendi.ca/resources/requirements/ RUN set -ex; \ diff --git a/2021.09-dev/fpm-alpine/cron.sh b/2021.09-dev/fpm-alpine/cron.sh index f899df9..18dced0 100755 --- a/2021.09-dev/fpm-alpine/cron.sh +++ b/2021.09-dev/fpm-alpine/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile index 303b218..188db9e 100644 --- a/2021.09-dev/fpm/Dockerfile +++ b/2021.09-dev/fpm/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.09-dev/fpm/cron.sh b/2021.09-dev/fpm/cron.sh index f899df9..18dced0 100755 --- a/2021.09-dev/fpm/cron.sh +++ b/2021.09-dev/fpm/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.09-rc/apache/Dockerfile b/2021.09-rc/apache/Dockerfile index 82af680..5b82fe6 100644 --- a/2021.09-rc/apache/Dockerfile +++ b/2021.09-rc/apache/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.09-rc/apache/cron.sh b/2021.09-rc/apache/cron.sh index f899df9..18dced0 100755 --- a/2021.09-rc/apache/cron.sh +++ b/2021.09-rc/apache/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.09-rc/fpm-alpine/Dockerfile b/2021.09-rc/fpm-alpine/Dockerfile index 64fa399..7451522 100644 --- a/2021.09-rc/fpm-alpine/Dockerfile +++ b/2021.09-rc/fpm-alpine/Dockerfile @@ -11,6 +11,34 @@ RUN set -ex; \ shadow \ tini; +ENV GOSU_VERSION 1.14 +RUN set -eux; \ + \ + apk add --no-cache --virtual .gosu-deps \ + ca-certificates \ + dpkg \ + gnupg \ + ; \ + \ + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + \ +# verify the signature + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ + gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ + command -v gpgconf && gpgconf --kill all || :; \ + rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ + \ +# clean up fetch dependencies + apk del --no-network .gosu-deps; \ + \ + chmod +x /usr/local/bin/gosu; \ +# verify that the binary works + gosu --version; \ + gosu nobody true + # install the PHP extensions we need # see https://friendi.ca/resources/requirements/ RUN set -ex; \ diff --git a/2021.09-rc/fpm-alpine/cron.sh b/2021.09-rc/fpm-alpine/cron.sh index f899df9..18dced0 100755 --- a/2021.09-rc/fpm-alpine/cron.sh +++ b/2021.09-rc/fpm-alpine/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/2021.09-rc/fpm/Dockerfile b/2021.09-rc/fpm/Dockerfile index 00ee3b4..6ea4e88 100644 --- a/2021.09-rc/fpm/Dockerfile +++ b/2021.09-rc/fpm/Dockerfile @@ -11,22 +11,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v0.19.0 -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/2021.09-rc/fpm/cron.sh b/2021.09-rc/fpm/cron.sh index f899df9..18dced0 100755 --- a/2021.09-rc/fpm/cron.sh +++ b/2021.09-rc/fpm/cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 8132fd3..5c68752 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -10,6 +10,34 @@ RUN set -ex; \ shadow \ tini; +ENV GOSU_VERSION 1.14 +RUN set -eux; \ + \ + apk add --no-cache --virtual .gosu-deps \ + ca-certificates \ + dpkg \ + gnupg \ + ; \ + \ + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + \ +# verify the signature + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ + gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ + command -v gpgconf && gpgconf --kill all || :; \ + rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ + \ +# clean up fetch dependencies + apk del --no-network .gosu-deps; \ + \ + chmod +x /usr/local/bin/gosu; \ +# verify that the binary works + gosu --version; \ + gosu nobody true + # install the PHP extensions we need # see https://friendi.ca/resources/requirements/ RUN set -ex; \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 8e35e6e..0c21c34 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -10,22 +10,14 @@ RUN set -ex; \ git \ # For mail() support msmtp \ -# For tini installation - gnupg dirmngr \ + tini \ +# For setuid/setgid support + gosu \ ; \ +# Verify that the binary works + gosu nobody true; \ rm -rf /var/lib/apt/lists/*; -# Add tini for reaping processes -ENV TINI_VERSION v%%TINI_VERSION%% -RUN export BUILD_ARCH=$(dpkg-architecture --query DEB_BUILD_ARCH) \ - && mkdir ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && 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; \ diff --git a/docker-cron.sh b/docker-cron.sh index f899df9..18dced0 100755 --- a/docker-cron.sh +++ b/docker-cron.sh @@ -8,7 +8,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 sh /setup_msmtp.sh - exec /sbin/tini -- php /var/www/html/bin/daemon.php -f start + exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start else echo "[ERROR] Waited 300 seconds, no response" >&2 fi From 6e614d2fa301455e4008e37f6f2eb81be05678b8 Mon Sep 17 00:00:00 2001 From: Philipp Date: Fri, 3 Sep 2021 10:12:01 +0200 Subject: [PATCH 12/22] Add sha256 check for official images --- 2021.04/apache/Dockerfile | 22 +++++++++++++++------- 2021.04/fpm-alpine/Dockerfile | 22 +++++++++++++++------- 2021.04/fpm/Dockerfile | 22 +++++++++++++++------- 2021.07/apache/Dockerfile | 22 +++++++++++++++------- 2021.07/fpm-alpine/Dockerfile | 22 +++++++++++++++------- 2021.07/fpm/Dockerfile | 22 +++++++++++++++------- update.sh | 2 +- 7 files changed, 91 insertions(+), 43 deletions(-) diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index ca801dc..8b7fdda 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -136,18 +136,26 @@ ENV FRIENDICA_VERSION "2021.04" ENV FRIENDICA_ADDONS "2021.04" RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ + sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ + sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 69ce070..e54ef41 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -102,18 +102,26 @@ ENV FRIENDICA_VERSION "2021.04" ENV FRIENDICA_ADDONS "2021.04" RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ + sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ + sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index d35894c..ea50d43 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -127,18 +127,26 @@ ENV FRIENDICA_VERSION "2021.04" ENV FRIENDICA_ADDONS "2021.04" RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ + sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ + sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index 3ac9428..a76eeda 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -136,18 +136,26 @@ ENV FRIENDICA_VERSION "2021.07" ENV FRIENDICA_ADDONS "2021.07" RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ + sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ + sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index 4b11f58..9328726 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -102,18 +102,26 @@ ENV FRIENDICA_VERSION "2021.07" ENV FRIENDICA_ADDONS "2021.07" RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ + sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ + sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index eca45de..ad87e2b 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -127,18 +127,26 @@ ENV FRIENDICA_VERSION "2021.07" ENV FRIENDICA_ADDONS "2021.07" RUN set -ex; \ - curl -fsSL -o friendica.tar.gz \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - tar -xzf friendica.tar.gz -C /usr/src/; \ - rm friendica.tar.gz; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ + sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ - curl -fsSL -o friendica_addons.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ + sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica_addons.tar.gz; + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/update.sh b/update.sh index 32b90d8..dbbd183 100755 --- a/update.sh +++ b/update.sh @@ -82,7 +82,7 @@ declare -A pecl_versions=( ) declare -A install_extras=( - ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n tar -xzf friendica.tar.gz -C /usr/src/; \\\n rm friendica.tar.gz; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica_addons.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica_addons.tar.gz;' + ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \\\n sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \\\n sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256;' ['develop']='' ) From ffd8358b2101d60ba7d6a00770c7819e0b58f4f2 Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 8 Sep 2021 19:57:35 +0200 Subject: [PATCH 13/22] Directly include sha256 checksum for stable images --- 2021.04/apache/Dockerfile | 15 +++++---------- 2021.04/fpm-alpine/Dockerfile | 15 +++++---------- 2021.04/fpm/Dockerfile | 15 +++++---------- 2021.07/apache/Dockerfile | 15 +++++---------- 2021.07/fpm-alpine/Dockerfile | 15 +++++---------- 2021.07/fpm/Dockerfile | 15 +++++---------- Dockerfile-alpine.template | 2 +- Dockerfile-debian.template | 2 +- update.sh | 13 ++++++++++++- 9 files changed, 44 insertions(+), 63 deletions(-) diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 16d8fd2..16fa3a6 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -126,29 +126,24 @@ RUN set -ex;\ ENV FRIENDICA_VERSION "2021.04" ENV FRIENDICA_ADDONS "2021.04" +ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6e1bbe88932a1ce4" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" RUN set -ex; \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ - sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ - sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; - + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index ce59a67..87b4a91 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -128,29 +128,24 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.04" ENV FRIENDICA_ADDONS "2021.04" +ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6e1bbe88932a1ce4" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" RUN set -ex; \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ - sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ - sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; - + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index 596c1a8..f955187 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -117,29 +117,24 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.04" ENV FRIENDICA_ADDONS "2021.04" +ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6e1bbe88932a1ce4" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" RUN set -ex; \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ - sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ - sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; - + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index e1ca9ef..e0e5903 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -126,29 +126,24 @@ RUN set -ex;\ ENV FRIENDICA_VERSION "2021.07" ENV FRIENDICA_ADDONS "2021.07" +ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00f1452760eeeda12" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" RUN set -ex; \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ - sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ - sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; - + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index df43b75..e86ddd4 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -128,29 +128,24 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.07" ENV FRIENDICA_ADDONS "2021.07" +ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00f1452760eeeda12" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" RUN set -ex; \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ - sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ - sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; - + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index a8b7aa9..da0df32 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -117,29 +117,24 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.07" ENV FRIENDICA_ADDONS "2021.07" +ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00f1452760eeeda12" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" RUN set -ex; \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \ - sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \ - sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \ + echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; - + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 5c68752..d282e30 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -127,8 +127,8 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "%%VERSION%%" ENV FRIENDICA_ADDONS "%%VERSION%%" +%%DOWNLOAD_SHA256%% %%INSTALL_EXTRAS%% - COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 0c21c34..d814ff9 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -116,8 +116,8 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "%%VERSION%%" ENV FRIENDICA_ADDONS "%%VERSION%%" +%%DOWNLOAD_SHA256%% %%INSTALL_EXTRAS%% - COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/update.sh b/update.sh index dbbd183..e78bf85 100755 --- a/update.sh +++ b/update.sh @@ -82,7 +82,7 @@ declare -A pecl_versions=( ) declare -A install_extras=( - ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256"; \\\n sha256sum -c friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256"; \\\n sha256sum -c friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256;' + ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz;' ['develop']='' ) @@ -103,6 +103,16 @@ function is_hotfix() { [[ "$1" =~ ^.*-[[:digit:]]+$ ]] } +function get_sha256_string() { + install_type="$1" + version="${2,,}" + if [[ $install_type == "develop" ]]; then + echo "" + else + echo "ENV FRIENDICA_DOWNLOAD_SHA256 \"$(curl -fsSL https://files.friendi.ca/friendica-full-${version}.tar.gz.sum256 | cut -d' ' -f1)\"\nENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 \"$(curl -fsSL https://files.friendi.ca/friendica-addons-${version}.tar.gz.sum256 | cut -d' ' -f1)\"" + fi +} + function create_variant() { dockerName=${1,,} dir="$dockerName/$variant" @@ -129,6 +139,7 @@ function create_variant() { s/%%VERSION%%/'"${2:-${1}}"'/g; s/%%CMD%%/'"${cmd[$variant]}"'/g; s|%%VARIANT_EXTRAS%%|'"${extras[$variant]}"'|g; + s|%%DOWNLOAD_SHA256%%|'"$(get_sha256_string $install_type ${2:-${1}})"'|g; s|%%INSTALL_EXTRAS%%|'"${install_extras[$install_type]}"'|g; s/%%APCU_VERSION%%/'"${pecl_versions[APCu]}"'/g; s/%%IMAGICK_VERSION%%/'"${pecl_versions[imagick]}"'/g; From 527b15c975d68adfac9777011b96e969cc8fec6b Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 8 Sep 2021 22:56:55 +0200 Subject: [PATCH 14/22] Add GPG Check for stable docker images --- 2021.04/apache/Dockerfile | 27 +++++++++++++++++++++++++-- 2021.04/fpm-alpine/Dockerfile | 24 ++++++++++++++++++++++-- 2021.04/fpm/Dockerfile | 27 +++++++++++++++++++++++++-- 2021.07/apache/Dockerfile | 27 +++++++++++++++++++++++++-- 2021.07/fpm-alpine/Dockerfile | 24 ++++++++++++++++++++++-- 2021.07/fpm/Dockerfile | 27 +++++++++++++++++++++++++-- update.sh | 5 +++-- 7 files changed, 147 insertions(+), 14 deletions(-) diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 16fa3a6..57d71cc 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -130,20 +130,43 @@ ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6 ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ + \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ + \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ + rm -rf /var/lib/apt/lists/* + COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 87b4a91..167de7e 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -132,20 +132,40 @@ ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6 ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" RUN set -ex; \ + apk add --no-cache --virtual .fetch-deps \ + gnupg \ + ; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ + \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ + \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + \ + apk del .fetch-deps + COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index f955187..053391c 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -121,20 +121,43 @@ ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6 ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ + \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ + \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ + rm -rf /var/lib/apt/lists/* + COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index e0e5903..6f32888 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -130,20 +130,43 @@ ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00 ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ + \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ + \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ + rm -rf /var/lib/apt/lists/* + COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index e86ddd4..ecf746e 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -132,20 +132,40 @@ ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00 ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" RUN set -ex; \ + apk add --no-cache --virtual .fetch-deps \ + gnupg \ + ; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ + \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ + \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + \ + apk del .fetch-deps + COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index da0df32..101684e 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -121,20 +121,43 @@ ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00 ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ + "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ chmod 777 /usr/src/friendica/view/smarty3; \ + \ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ + "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ mkdir -p /usr/src/friendica/proxy; \ mkdir -p /usr/src/friendica/addon; \ tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz; + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ + \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ + rm -rf /var/lib/apt/lists/* + COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/update.sh b/update.sh index e78bf85..05e859f 100755 --- a/update.sh +++ b/update.sh @@ -82,7 +82,8 @@ declare -A pecl_versions=( ) declare -A install_extras=( - ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz;' + ['stable-debian']='\nRUN set -ex; \\\n fetchDeps=" \\\n gnupg \\\n "; \\\n apt-get update; \\\n apt-get install -y --no-install-recommends $fetchDeps; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \\\n rm -rf /var/lib/apt/lists/*\n' + ['stable-alpine']='\nRUN set -ex; \\\n apk add --no-cache --virtual .fetch-deps \\\n gnupg \\\n ; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apk del .fetch-deps\n' ['develop']='' ) @@ -140,7 +141,7 @@ function create_variant() { s/%%CMD%%/'"${cmd[$variant]}"'/g; s|%%VARIANT_EXTRAS%%|'"${extras[$variant]}"'|g; s|%%DOWNLOAD_SHA256%%|'"$(get_sha256_string $install_type ${2:-${1}})"'|g; - s|%%INSTALL_EXTRAS%%|'"${install_extras[$install_type]}"'|g; + s|%%INSTALL_EXTRAS%%|'"${install_extras[$install_type-${base[$variant]}]}"'|g; s/%%APCU_VERSION%%/'"${pecl_versions[APCu]}"'/g; s/%%IMAGICK_VERSION%%/'"${pecl_versions[imagick]}"'/g; s/%%MEMCACHED_VERSION%%/'"${pecl_versions[memcached]}"'/g; From 2f1d0cb76982edd467590c144e78fc2cd173cf9d Mon Sep 17 00:00:00 2001 From: Philipp Date: Wed, 8 Sep 2021 23:07:39 +0200 Subject: [PATCH 15/22] Change keyserver --- 2021.04/apache/Dockerfile | 2 +- 2021.04/fpm-alpine/Dockerfile | 2 +- 2021.04/fpm/Dockerfile | 2 +- 2021.07/apache/Dockerfile | 2 +- 2021.07/fpm-alpine/Dockerfile | 2 +- 2021.07/fpm/Dockerfile | 2 +- update.sh | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 57d71cc..9f0fa05 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -137,7 +137,7 @@ RUN set -ex; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 167de7e..6a8b79f 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -137,7 +137,7 @@ RUN set -ex; \ ; \ \ export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index 053391c..211367a 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -128,7 +128,7 @@ RUN set -ex; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index 6f32888..ee6f179 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -137,7 +137,7 @@ RUN set -ex; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index ecf746e..eb866ad 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -137,7 +137,7 @@ RUN set -ex; \ ; \ \ export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index 101684e..c692576 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -128,7 +128,7 @@ RUN set -ex; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ \ curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ diff --git a/update.sh b/update.sh index 05e859f..d14cd61 100755 --- a/update.sh +++ b/update.sh @@ -82,8 +82,8 @@ declare -A pecl_versions=( ) declare -A install_extras=( - ['stable-debian']='\nRUN set -ex; \\\n fetchDeps=" \\\n gnupg \\\n "; \\\n apt-get update; \\\n apt-get install -y --no-install-recommends $fetchDeps; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \\\n rm -rf /var/lib/apt/lists/*\n' - ['stable-alpine']='\nRUN set -ex; \\\n apk add --no-cache --virtual .fetch-deps \\\n gnupg \\\n ; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apk del .fetch-deps\n' + ['stable-debian']='\nRUN set -ex; \\\n fetchDeps=" \\\n gnupg \\\n "; \\\n apt-get update; \\\n apt-get install -y --no-install-recommends $fetchDeps; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \\\n rm -rf /var/lib/apt/lists/*\n' + ['stable-alpine']='\nRUN set -ex; \\\n apk add --no-cache --virtual .fetch-deps \\\n gnupg \\\n ; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apk del .fetch-deps\n' ['develop']='' ) From 77afe291c17b9c9ab8bb734b7d3ad1f903a76c14 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 11 Sep 2021 20:26:16 +0200 Subject: [PATCH 16/22] New develop/rc behavior: - Replace all GIT downloads with downloads per file.friendi.ca - Add GPG check for these downloads - Adapt documentation - Remove any other GIT dependency inside the image --- .travis/test-entrypoint.sh | 51 ------------- .travis/test-example-dockerfiles.sh | 19 ----- 2021.04/apache/Dockerfile | 1 - 2021.04/apache/upgrade.exclude | 3 +- 2021.04/fpm-alpine/Dockerfile | 1 - 2021.04/fpm-alpine/upgrade.exclude | 3 +- 2021.04/fpm/Dockerfile | 1 - 2021.04/fpm/upgrade.exclude | 3 +- 2021.07/apache/Dockerfile | 1 - 2021.07/apache/upgrade.exclude | 3 +- 2021.07/fpm-alpine/Dockerfile | 1 - 2021.07/fpm-alpine/upgrade.exclude | 3 +- 2021.07/fpm/Dockerfile | 1 - 2021.07/fpm/upgrade.exclude | 3 +- 2021.09-dev/apache/Dockerfile | 7 +- 2021.09-dev/apache/entrypoint-dev.sh | 95 ++++++++---------------- 2021.09-dev/apache/upgrade.exclude | 3 +- 2021.09-dev/fpm-alpine/Dockerfile | 5 +- 2021.09-dev/fpm-alpine/entrypoint-dev.sh | 95 ++++++++---------------- 2021.09-dev/fpm-alpine/upgrade.exclude | 3 +- 2021.09-dev/fpm/Dockerfile | 7 +- 2021.09-dev/fpm/entrypoint-dev.sh | 95 ++++++++---------------- 2021.09-dev/fpm/upgrade.exclude | 3 +- 2021.09-rc/apache/Dockerfile | 7 +- 2021.09-rc/apache/entrypoint-dev.sh | 95 ++++++++---------------- 2021.09-rc/apache/upgrade.exclude | 3 +- 2021.09-rc/fpm-alpine/Dockerfile | 5 +- 2021.09-rc/fpm-alpine/entrypoint-dev.sh | 95 ++++++++---------------- 2021.09-rc/fpm-alpine/upgrade.exclude | 3 +- 2021.09-rc/fpm/Dockerfile | 7 +- 2021.09-rc/fpm/entrypoint-dev.sh | 95 ++++++++---------------- 2021.09-rc/fpm/upgrade.exclude | 3 +- Dockerfile-alpine.template | 1 - Dockerfile-debian.template | 1 - README.md | 22 +----- docker-entrypoint-dev.sh | 95 ++++++++---------------- update.sh | 3 +- upgrade.exclude | 3 +- 38 files changed, 280 insertions(+), 565 deletions(-) delete mode 100755 .travis/test-entrypoint.sh delete mode 100755 .travis/test-example-dockerfiles.sh diff --git a/.travis/test-entrypoint.sh b/.travis/test-entrypoint.sh deleted file mode 100755 index 22f1759..0000000 --- a/.travis/test-entrypoint.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -set -eu - -# copy of see .docker-files/entrypoint.sh - testing all versions -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - - -if ! version_greater "2019.06" "2019.06-rc"; then - exit 1; -fi -if ! version_greater "2019.06" "2019.04-rc"; then - exit 1; -fi -if version_greater "2019.06-rc" "2019.06"; then - exit 1; -fi -if version_greater "2019.04" "2019.06"; then - exit 1; -fi -if ! version_greater "2019.06" "2019.04"; then - exit 1; -fi -if ! version_greater "2019.07" "2019.06-rc"; then - exit 1; -fi -if version_greater "2019.05" "2019.06-rc"; then - exit 1; -fi -if version_greater "2019.05-dev" "2019.05"; then - exit 1; -fi -if ! version_greater "2019.05" "2019.05-dev"; then - exit 1; -fi -if ! version_greater "2020.07-1" "2020.07"; then - exit 1; -fi -if ! version_greater "2020.07-2" "2020.07-1"; then - exit 1; -fi -if ! version_greater "2020.07-1" "2020.07-dev"; then - exit 1; -fi -if ! version_greater "2020.09-rc" "2020.09-dev"; then - exit 1 -fi -if version_greater "2020.06-rc" "2020.09-dev"; then - exit 1; -fi diff --git a/.travis/test-example-dockerfiles.sh b/.travis/test-example-dockerfiles.sh deleted file mode 100755 index eb11eca..0000000 --- a/.travis/test-example-dockerfiles.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -e - -image="$1" - -cd .examples/dockerfiles - -dirs=( */ ) -dirs=( "${dirs[@]%/}" ) -for dir in "${dirs[@]}"; do - if [ -d "$dir/$VARIANT" ]; then - ( - cd "$dir/$VARIANT" - sed -ri -e 's|^FROM .*|FROM '"$image"'|g' 'Dockerfile' - docker build -t "$image-$dir" . - ~/official-images/test/run.sh "$image-$dir" - ) - fi -done \ No newline at end of file diff --git a/2021.04/apache/Dockerfile b/2021.04/apache/Dockerfile index 9f0fa05..adefd77 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.04/apache/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ diff --git a/2021.04/apache/upgrade.exclude b/2021.04/apache/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.04/apache/upgrade.exclude +++ b/2021.04/apache/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile index 6a8b79f..05b42af 100644 --- a/2021.04/fpm-alpine/Dockerfile +++ b/2021.04/fpm-alpine/Dockerfile @@ -5,7 +5,6 @@ FROM php:7.3-fpm-alpine RUN set -ex; \ apk add --no-cache \ rsync \ - git \ # For mail() support msmtp \ shadow \ diff --git a/2021.04/fpm-alpine/upgrade.exclude b/2021.04/fpm-alpine/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.04/fpm-alpine/upgrade.exclude +++ b/2021.04/fpm-alpine/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile index 211367a..4471760 100644 --- a/2021.04/fpm/Dockerfile +++ b/2021.04/fpm/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ diff --git a/2021.04/fpm/upgrade.exclude b/2021.04/fpm/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.04/fpm/upgrade.exclude +++ b/2021.04/fpm/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile index ee6f179..b5ea1b2 100644 --- a/2021.07/apache/Dockerfile +++ b/2021.07/apache/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ diff --git a/2021.07/apache/upgrade.exclude b/2021.07/apache/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.07/apache/upgrade.exclude +++ b/2021.07/apache/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.07/fpm-alpine/Dockerfile index eb866ad..e3caf7e 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.07/fpm-alpine/Dockerfile @@ -5,7 +5,6 @@ FROM php:7.3-fpm-alpine RUN set -ex; \ apk add --no-cache \ rsync \ - git \ # For mail() support msmtp \ shadow \ diff --git a/2021.07/fpm-alpine/upgrade.exclude b/2021.07/fpm-alpine/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.07/fpm-alpine/upgrade.exclude +++ b/2021.07/fpm-alpine/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.07/fpm/Dockerfile b/2021.07/fpm/Dockerfile index c692576..dbe5ff5 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.07/fpm/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ diff --git a/2021.07/fpm/upgrade.exclude b/2021.07/fpm/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.07/fpm/upgrade.exclude +++ b/2021.07/fpm/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile index e6b9633..8364898 100644 --- a/2021.09-dev/apache/Dockerfile +++ b/2021.09-dev/apache/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ @@ -127,6 +126,12 @@ RUN set -ex;\ ENV FRIENDICA_VERSION "2021.09-dev" ENV FRIENDICA_ADDONS "2021.09-dev" +RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.09-dev/apache/entrypoint-dev.sh b/2021.09-dev/apache/entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/2021.09-dev/apache/entrypoint-dev.sh +++ b/2021.09-dev/apache/entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/2021.09-dev/apache/upgrade.exclude b/2021.09-dev/apache/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.09-dev/apache/upgrade.exclude +++ b/2021.09-dev/apache/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile index 08852ce..18722c8 100644 --- a/2021.09-dev/fpm-alpine/Dockerfile +++ b/2021.09-dev/fpm-alpine/Dockerfile @@ -5,7 +5,6 @@ FROM php:7.3-fpm-alpine RUN set -ex; \ apk add --no-cache \ rsync \ - git \ # For mail() support msmtp \ shadow \ @@ -129,6 +128,10 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.09-dev" ENV FRIENDICA_ADDONS "2021.09-dev" +RUN set -ex; \ + apk add --no-cache --virtual .fetch-deps \ + gnupg \ + ; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.09-dev/fpm-alpine/entrypoint-dev.sh b/2021.09-dev/fpm-alpine/entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/2021.09-dev/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-dev/fpm-alpine/entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/2021.09-dev/fpm-alpine/upgrade.exclude b/2021.09-dev/fpm-alpine/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.09-dev/fpm-alpine/upgrade.exclude +++ b/2021.09-dev/fpm-alpine/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile index 188db9e..fe7938d 100644 --- a/2021.09-dev/fpm/Dockerfile +++ b/2021.09-dev/fpm/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ @@ -118,6 +117,12 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.09-dev" ENV FRIENDICA_ADDONS "2021.09-dev" +RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.09-dev/fpm/entrypoint-dev.sh b/2021.09-dev/fpm/entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/2021.09-dev/fpm/entrypoint-dev.sh +++ b/2021.09-dev/fpm/entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/2021.09-dev/fpm/upgrade.exclude b/2021.09-dev/fpm/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.09-dev/fpm/upgrade.exclude +++ b/2021.09-dev/fpm/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.09-rc/apache/Dockerfile b/2021.09-rc/apache/Dockerfile index 5b82fe6..e44adfe 100644 --- a/2021.09-rc/apache/Dockerfile +++ b/2021.09-rc/apache/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ @@ -127,6 +126,12 @@ RUN set -ex;\ ENV FRIENDICA_VERSION "2021.09-rc" ENV FRIENDICA_ADDONS "2021.09-rc" +RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.09-rc/apache/entrypoint-dev.sh b/2021.09-rc/apache/entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/2021.09-rc/apache/entrypoint-dev.sh +++ b/2021.09-rc/apache/entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/2021.09-rc/apache/upgrade.exclude b/2021.09-rc/apache/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.09-rc/apache/upgrade.exclude +++ b/2021.09-rc/apache/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.09-rc/fpm-alpine/Dockerfile b/2021.09-rc/fpm-alpine/Dockerfile index 7451522..9314282 100644 --- a/2021.09-rc/fpm-alpine/Dockerfile +++ b/2021.09-rc/fpm-alpine/Dockerfile @@ -5,7 +5,6 @@ FROM php:7.3-fpm-alpine RUN set -ex; \ apk add --no-cache \ rsync \ - git \ # For mail() support msmtp \ shadow \ @@ -129,6 +128,10 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.09-rc" ENV FRIENDICA_ADDONS "2021.09-rc" +RUN set -ex; \ + apk add --no-cache --virtual .fetch-deps \ + gnupg \ + ; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.09-rc/fpm-alpine/entrypoint-dev.sh b/2021.09-rc/fpm-alpine/entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/2021.09-rc/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-rc/fpm-alpine/entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm-alpine/upgrade.exclude b/2021.09-rc/fpm-alpine/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.09-rc/fpm-alpine/upgrade.exclude +++ b/2021.09-rc/fpm-alpine/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/2021.09-rc/fpm/Dockerfile b/2021.09-rc/fpm/Dockerfile index 6ea4e88..d5c5519 100644 --- a/2021.09-rc/fpm/Dockerfile +++ b/2021.09-rc/fpm/Dockerfile @@ -8,7 +8,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ @@ -118,6 +117,12 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.09-rc" ENV FRIENDICA_ADDONS "2021.09-rc" +RUN set -ex; \ + fetchDeps=" \ + gnupg \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps; COPY *.sh upgrade.exclude / COPY config/* /usr/src/friendica/config/ diff --git a/2021.09-rc/fpm/entrypoint-dev.sh b/2021.09-rc/fpm/entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/2021.09-rc/fpm/entrypoint-dev.sh +++ b/2021.09-rc/fpm/entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm/upgrade.exclude b/2021.09-rc/fpm/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/2021.09-rc/fpm/upgrade.exclude +++ b/2021.09-rc/fpm/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index d282e30..2d9ea05 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -4,7 +4,6 @@ FROM php:%%PHP_VERSION%%-%%VARIANT%% RUN set -ex; \ apk add --no-cache \ rsync \ - git \ # For mail() support msmtp \ shadow \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index d814ff9..7e9215f 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -7,7 +7,6 @@ RUN set -ex; \ apt-get install -y --no-install-recommends \ rsync \ bzip2 \ - git \ # For mail() support msmtp \ tini \ diff --git a/README.md b/README.md index 9268484..2b60b76 100644 --- a/README.md +++ b/README.md @@ -359,26 +359,8 @@ Then run `docker-compose up -d`, now you can access Friendica at http://localhos # Special settings for DEV/RC images -The `*-dev` and `*-rc` branches are having additional possibilities to get the latest sources of Friendica. - -## Possible Environment Variables - -The following environment variables are possible for these kind of images too: - -**Develop/Release Candidate Settings** - -- `FRIENDICA_UPGRADE` If set to `true`, a develop or release candidat node will get updated at startup. -- `FRIENDICA_REPOSITORY` If set, a custom repository will be chosen (Default: `friendica`) -- `FRIENDICA_ADDONS_REPO` If set, a custom repository for the addons will be chosen (Default: `friendica`) -- `FRIENDICA_VERSION` If set, a custom branch will be chosen (Default is based on the chosen image version) -- `FRIENDICA_ADDONS` If set, a custom branch for the addons will be chosen (Default is based on the chosen image version) - -## Updating to a newer version - -You don't need to pull the image for each commit in [friendica](https://github.com/friendica/friendica/). -Instead, the release candidate or develop branch will get updated if no installation was found or the environment variable `FRIENDICA_UPGRADE` is set to `true`. - -It will clone the latest Friendica version and copy it to your working directory. +The `*-dev` and `*-rc` branches are directly downloaded and verified at each docker start to ensure that the latest sources are used. +It's possible to disable this behaviour by setting the environment variable `FRIENDICA_DISABLE_UPGRADE` to `true`. # Questions / Issues diff --git a/docker-entrypoint-dev.sh b/docker-entrypoint-dev.sh index 08c3c13..05b4d88 100755 --- a/docker-entrypoint-dev.sh +++ b/docker-entrypoint-dev.sh @@ -1,69 +1,40 @@ #!/bin/sh set -eu -# checks if the branch and repository exists -check_branch() { - repo=${1:-} - branch=${2:-} - git ls-remote --heads --tags "https://github.com/$repo" | grep -E "refs/(heads|tags)/${branch}$" >/dev/null - [ "$?" -eq "0" ] -} - -# clones the whole develop branch (Friendica and Addons) -clone_develop() { - friendica_git="${FRIENDICA_VERSION}" - addons_git="${FRIENDICA_ADDONS}" - friendica_repo="${FRIENDICA_REPOSITORY:-friendica/friendica}" - friendica_addons_repo="${FRIENDICA_ADDONS_REPO:-friendica/friendica-addons}" - - if echo "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then - friendica_git="develop" - fi - - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_git="develop" - fi - - # Check if the branches exist before wiping the - if check_branch "$friendica_repo" "$friendica_git" && check_branch "$friendica_addons_repo" "$addons_git" ; then - echo "Cloning '${friendica_git}' from GitHub repository '${friendica_repo}' ..." - - # Removing the whole directory first - rm -fr /usr/src/friendica - git clone -q -b ${friendica_git} "https://github.com/${friendica_repo}" /usr/src/friendica - - mkdir /usr/src/friendica/addon - git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - - echo "Download finished" - - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi - - /usr/src/friendica/bin/composer.phar install --no-dev -d /usr/src/friendica - return 0 - - else - if check_branch "$friendica_repo" "$friendica_git"; then - echo "$friendica_repo/$friendica_git is not valid." - else - echo "$friendica_addons_repo/$addons_git is not valid." - fi - echo "Using old version." - return 1 - - fi -} - # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - # cloning from git is just possible for develop or Release Candidate - if echo "${FRIENDICA_VERSION}" | grep -Eq '^.*(\-dev|-rc|-RC)' || [ "${FRIENDICA_UPGRADE:-false}" = "true" ] || [ ! -f /usr/src/friendica/VERSION ]; then - # just clone & check if it's a new install or upgrade - clone_develop - fi +if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" + + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" + + tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" + + chmod 777 /usr/src/friendica/view/smarty3 + + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon source (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" fi exec /entrypoint.sh "$@" diff --git a/update.sh b/update.sh index d14cd61..4a627d0 100755 --- a/update.sh +++ b/update.sh @@ -84,7 +84,8 @@ declare -A pecl_versions=( declare -A install_extras=( ['stable-debian']='\nRUN set -ex; \\\n fetchDeps=" \\\n gnupg \\\n "; \\\n apt-get update; \\\n apt-get install -y --no-install-recommends $fetchDeps; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \\\n rm -rf /var/lib/apt/lists/*\n' ['stable-alpine']='\nRUN set -ex; \\\n apk add --no-cache --virtual .fetch-deps \\\n gnupg \\\n ; \\\n \\\n export GNUPGHOME="$(mktemp -d)"; \\\n gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \\\n \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \\\n gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" \| sha256sum -c; \\\n tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \\\n rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \\\n mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \\\n curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \\\n "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \\\n gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \\\n echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" \| sha256sum -c; \\\n mkdir -p /usr/src/friendica/proxy; \\\n mkdir -p /usr/src/friendica/addon; \\\n tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \\\n \\\n gpgconf --kill all; \\\n rm -rf "$GNUPGHOME"; \\\n \\\n apk del .fetch-deps\n' - ['develop']='' + ['develop-debian']='RUN set -ex; \\\n fetchDeps=" \\\n gnupg \\\n "; \\\n apt-get update; \\\n apt-get install -y --no-install-recommends $fetchDeps;\n' + ['develop-alpine']='RUN set -ex; \\\n apk add --no-cache --virtual .fetch-deps \\\n gnupg \\\n ;\n' ) variants=( diff --git a/upgrade.exclude b/upgrade.exclude index 2fb6533..b3420cc 100644 --- a/upgrade.exclude +++ b/upgrade.exclude @@ -1,4 +1,3 @@ -/.git/ /photo/ /proxy/ /.htconfig.php @@ -7,4 +6,4 @@ /config/ /storage/ /log/ -*.log \ No newline at end of file +*.log From 145192499a667dd75e39d460b1338bd19aa9ce03 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 11 Sep 2021 21:43:13 +0200 Subject: [PATCH 17/22] Fix logic & gpg behavior --- 2021.09-dev/apache/entrypoint-dev.sh | 12 ++++++------ 2021.09-dev/fpm-alpine/entrypoint-dev.sh | 12 ++++++------ 2021.09-dev/fpm/entrypoint-dev.sh | 12 ++++++------ 2021.09-rc/apache/entrypoint-dev.sh | 12 ++++++------ 2021.09-rc/fpm-alpine/entrypoint-dev.sh | 12 ++++++------ 2021.09-rc/fpm/entrypoint-dev.sh | 12 ++++++------ docker-entrypoint-dev.sh | 14 +++++++------- 7 files changed, 43 insertions(+), 43 deletions(-) diff --git a/2021.09-dev/apache/entrypoint-dev.sh b/2021.09-dev/apache/entrypoint-dev.sh index 05b4d88..1689596 100755 --- a/2021.09-dev/apache/entrypoint-dev.sh +++ b/2021.09-dev/apache/entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz echo "Addon source (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" diff --git a/2021.09-dev/fpm-alpine/entrypoint-dev.sh b/2021.09-dev/fpm-alpine/entrypoint-dev.sh index 05b4d88..1689596 100755 --- a/2021.09-dev/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-dev/fpm-alpine/entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz echo "Addon source (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" diff --git a/2021.09-dev/fpm/entrypoint-dev.sh b/2021.09-dev/fpm/entrypoint-dev.sh index 05b4d88..1689596 100755 --- a/2021.09-dev/fpm/entrypoint-dev.sh +++ b/2021.09-dev/fpm/entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz echo "Addon source (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" diff --git a/2021.09-rc/apache/entrypoint-dev.sh b/2021.09-rc/apache/entrypoint-dev.sh index 05b4d88..1689596 100755 --- a/2021.09-rc/apache/entrypoint-dev.sh +++ b/2021.09-rc/apache/entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz echo "Addon source (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" diff --git a/2021.09-rc/fpm-alpine/entrypoint-dev.sh b/2021.09-rc/fpm-alpine/entrypoint-dev.sh index 05b4d88..1689596 100755 --- a/2021.09-rc/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-rc/fpm-alpine/entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz echo "Addon source (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" diff --git a/2021.09-rc/fpm/entrypoint-dev.sh b/2021.09-rc/fpm/entrypoint-dev.sh index 05b4d88..1689596 100755 --- a/2021.09-rc/fpm/entrypoint-dev.sh +++ b/2021.09-rc/fpm/entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz echo "Addon source (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" diff --git a/docker-entrypoint-dev.sh b/docker-entrypoint-dev.sh index 05b4d88..d52226d 100755 --- a/docker-entrypoint-dev.sh +++ b/docker-entrypoint-dev.sh @@ -2,21 +2,21 @@ set -eu # just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then +if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" # Removing the whole directory first rm -fr /usr/src/friendica export GNUPGHOME="$(mktemp -d)" - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz echo "Core sources (${FRIENDICA_VERSION}) verified" - tar -xjf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica echo "Core sources (${FRIENDICA_VERSION}) extracted" @@ -25,11 +25,11 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${FRIENDICA_DI curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon - tar -xjf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc echo "Addon sources (${FRIENDICA_ADDONS}) extracted" From 3f8c16139f73d11dc01142876c8f349d609998f9 Mon Sep 17 00:00:00 2001 From: GitHub Workflow Date: Sat, 11 Sep 2021 22:49:31 +0000 Subject: [PATCH 18/22] Runs update.sh --- 2021.09-dev/apache/entrypoint-dev.sh | 2 +- 2021.09-dev/fpm-alpine/entrypoint-dev.sh | 2 +- 2021.09-dev/fpm/entrypoint-dev.sh | 2 +- 2021.09-rc/apache/entrypoint-dev.sh | 2 +- 2021.09-rc/fpm-alpine/entrypoint-dev.sh | 2 +- 2021.09-rc/fpm/entrypoint-dev.sh | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/2021.09-dev/apache/entrypoint-dev.sh b/2021.09-dev/apache/entrypoint-dev.sh index 1689596..d52226d 100755 --- a/2021.09-dev/apache/entrypoint-dev.sh +++ b/2021.09-dev/apache/entrypoint-dev.sh @@ -26,7 +26,7 @@ if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 diff --git a/2021.09-dev/fpm-alpine/entrypoint-dev.sh b/2021.09-dev/fpm-alpine/entrypoint-dev.sh index 1689596..d52226d 100755 --- a/2021.09-dev/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-dev/fpm-alpine/entrypoint-dev.sh @@ -26,7 +26,7 @@ if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 diff --git a/2021.09-dev/fpm/entrypoint-dev.sh b/2021.09-dev/fpm/entrypoint-dev.sh index 1689596..d52226d 100755 --- a/2021.09-dev/fpm/entrypoint-dev.sh +++ b/2021.09-dev/fpm/entrypoint-dev.sh @@ -26,7 +26,7 @@ if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 diff --git a/2021.09-rc/apache/entrypoint-dev.sh b/2021.09-rc/apache/entrypoint-dev.sh index 1689596..d52226d 100755 --- a/2021.09-rc/apache/entrypoint-dev.sh +++ b/2021.09-rc/apache/entrypoint-dev.sh @@ -26,7 +26,7 @@ if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 diff --git a/2021.09-rc/fpm-alpine/entrypoint-dev.sh b/2021.09-rc/fpm-alpine/entrypoint-dev.sh index 1689596..d52226d 100755 --- a/2021.09-rc/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-rc/fpm-alpine/entrypoint-dev.sh @@ -26,7 +26,7 @@ if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 diff --git a/2021.09-rc/fpm/entrypoint-dev.sh b/2021.09-rc/fpm/entrypoint-dev.sh index 1689596..d52226d 100755 --- a/2021.09-rc/fpm/entrypoint-dev.sh +++ b/2021.09-rc/fpm/entrypoint-dev.sh @@ -26,7 +26,7 @@ if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_ curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon source (${FRIENDICA_ADDONS}) verified" + echo "Addon sources (${FRIENDICA_ADDONS}) verified" mkdir -p /usr/src/friendica/addon tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 From 5d30c0b12af65c86dc0d108d63444bb04856ad7f Mon Sep 17 00:00:00 2001 From: Philipp Date: Sun, 12 Sep 2021 14:06:16 +0200 Subject: [PATCH 19/22] Add SHA256 check for dev/rc images --- 2021.09-dev/apache/entrypoint-dev.sh | 62 +++++++++++++++--------- 2021.09-dev/fpm-alpine/entrypoint-dev.sh | 62 +++++++++++++++--------- 2021.09-dev/fpm/entrypoint-dev.sh | 62 +++++++++++++++--------- 2021.09-rc/apache/entrypoint-dev.sh | 62 +++++++++++++++--------- 2021.09-rc/fpm-alpine/entrypoint-dev.sh | 62 +++++++++++++++--------- 2021.09-rc/fpm/entrypoint-dev.sh | 62 +++++++++++++++--------- docker-entrypoint-dev.sh | 62 +++++++++++++++--------- 7 files changed, 266 insertions(+), 168 deletions(-) diff --git a/2021.09-dev/apache/entrypoint-dev.sh b/2021.09-dev/apache/entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/2021.09-dev/apache/entrypoint-dev.sh +++ b/2021.09-dev/apache/entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" diff --git a/2021.09-dev/fpm-alpine/entrypoint-dev.sh b/2021.09-dev/fpm-alpine/entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/2021.09-dev/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-dev/fpm-alpine/entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" diff --git a/2021.09-dev/fpm/entrypoint-dev.sh b/2021.09-dev/fpm/entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/2021.09-dev/fpm/entrypoint-dev.sh +++ b/2021.09-dev/fpm/entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" diff --git a/2021.09-rc/apache/entrypoint-dev.sh b/2021.09-rc/apache/entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/2021.09-rc/apache/entrypoint-dev.sh +++ b/2021.09-rc/apache/entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm-alpine/entrypoint-dev.sh b/2021.09-rc/fpm-alpine/entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/2021.09-rc/fpm-alpine/entrypoint-dev.sh +++ b/2021.09-rc/fpm-alpine/entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm/entrypoint-dev.sh b/2021.09-rc/fpm/entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/2021.09-rc/fpm/entrypoint-dev.sh +++ b/2021.09-rc/fpm/entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" diff --git a/docker-entrypoint-dev.sh b/docker-entrypoint-dev.sh index d52226d..2f2bd3e 100755 --- a/docker-entrypoint-dev.sh +++ b/docker-entrypoint-dev.sh @@ -3,38 +3,52 @@ set -eu # just check if we execute apache or php-fpm if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" + curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" + curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" + # Don't download already latest sources + if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ + cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ + cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then + echo "Already latest sources - skipped download" + else - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 + echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" + # Removing the whole directory first + rm -fr /usr/src/friendica + export GNUPGHOME="$(mktemp -d)" - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" + gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - chmod 777 /usr/src/friendica/view/smarty3 + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" + curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz + echo "Core sources (${FRIENDICA_VERSION}) verified" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" + tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ + rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica + echo "Core sources (${FRIENDICA_VERSION}) extracted" - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + chmod 777 /usr/src/friendica/view/smarty3 - gpgconf --kill all - rm -rf "$GNUPGHOME" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" + curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" + gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz + echo "Addon sources (${FRIENDICA_ADDONS}) verified" + + mkdir -p /usr/src/friendica/addon + tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 + rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc + echo "Addon sources (${FRIENDICA_ADDONS}) extracted" + + gpgconf --kill all + rm -rf "$GNUPGHOME" + + mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 + mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 + fi fi exec /entrypoint.sh "$@" From 3db645e404fa2d80283df2e759d8e1b4b9ae96b7 Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 25 Sep 2021 20:35:08 +0200 Subject: [PATCH 20/22] Set min to 2021.09 --- update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.sh b/update.sh index 4a627d0..831c4b2 100755 --- a/update.sh +++ b/update.sh @@ -94,7 +94,7 @@ variants=( fpm-alpine ) -min_version='2021.04' +min_version='2021.09' # version_greater_or_equal A B returns whether A >= B function version_greater_or_equal() { From 9fe43ec2fb78aef998f8611834006a026b1e281d Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 25 Sep 2021 20:35:52 +0200 Subject: [PATCH 21/22] Release 2021.09 --- 2021.04/fpm-alpine/Dockerfile | 172 ----------------- 2021.04/fpm/Dockerfile | 164 ----------------- 2021.07/apache/Dockerfile | 173 ------------------ 2021.09-dev/apache/Dockerfile | 140 -------------- 2021.09-dev/apache/config/00apcu.config.php | 12 -- 2021.09-dev/apache/config/01redis.config.php | 15 -- .../apache/config/zz-docker.config.php | 68 ------- 2021.09-dev/apache/cron.sh | 14 -- 2021.09-dev/apache/entrypoint.sh | 145 --------------- 2021.09-dev/apache/setup_msmtp.sh | 38 ---- 2021.09-dev/apache/upgrade.exclude | 9 - 2021.09-dev/fpm-alpine/Dockerfile | 140 -------------- .../fpm-alpine/config/00apcu.config.php | 12 -- .../fpm-alpine/config/01redis.config.php | 15 -- .../fpm-alpine/config/zz-docker.config.php | 68 ------- 2021.09-dev/fpm-alpine/cron.sh | 14 -- 2021.09-dev/fpm-alpine/entrypoint.sh | 145 --------------- 2021.09-dev/fpm-alpine/setup_msmtp.sh | 38 ---- 2021.09-dev/fpm-alpine/upgrade.exclude | 9 - 2021.09-dev/fpm/Dockerfile | 131 ------------- 2021.09-dev/fpm/config/00apcu.config.php | 12 -- 2021.09-dev/fpm/config/01redis.config.php | 15 -- 2021.09-dev/fpm/config/zz-docker.config.php | 68 ------- 2021.09-dev/fpm/cron.sh | 14 -- 2021.09-dev/fpm/entrypoint.sh | 145 --------------- 2021.09-dev/fpm/setup_msmtp.sh | 38 ---- 2021.09-dev/fpm/upgrade.exclude | 9 - 2021.09-rc/apache/config/00apcu.config.php | 12 -- 2021.09-rc/apache/config/01redis.config.php | 15 -- 2021.09-rc/apache/config/zz-docker.config.php | 68 ------- 2021.09-rc/apache/cron.sh | 14 -- 2021.09-rc/apache/entrypoint-dev.sh | 54 ------ 2021.09-rc/apache/entrypoint.sh | 145 --------------- 2021.09-rc/apache/setup_msmtp.sh | 38 ---- 2021.09-rc/apache/upgrade.exclude | 9 - .../fpm-alpine/config/00apcu.config.php | 12 -- .../fpm-alpine/config/01redis.config.php | 15 -- .../fpm-alpine/config/zz-docker.config.php | 68 ------- 2021.09-rc/fpm-alpine/cron.sh | 14 -- 2021.09-rc/fpm-alpine/entrypoint-dev.sh | 54 ------ 2021.09-rc/fpm-alpine/entrypoint.sh | 145 --------------- 2021.09-rc/fpm-alpine/setup_msmtp.sh | 38 ---- 2021.09-rc/fpm-alpine/upgrade.exclude | 9 - 2021.09-rc/fpm/config/00apcu.config.php | 12 -- 2021.09-rc/fpm/config/01redis.config.php | 15 -- 2021.09-rc/fpm/config/zz-docker.config.php | 68 ------- 2021.09-rc/fpm/cron.sh | 14 -- 2021.09-rc/fpm/entrypoint-dev.sh | 54 ------ 2021.09-rc/fpm/entrypoint.sh | 145 --------------- 2021.09-rc/fpm/setup_msmtp.sh | 38 ---- 2021.09-rc/fpm/upgrade.exclude | 9 - {2021.04 => 2021.09}/apache/Dockerfile | 8 +- .../apache/config/00apcu.config.php | 0 .../apache/config/01redis.config.php | 0 .../apache/config/zz-docker.config.php | 0 {2021.04 => 2021.09}/apache/cron.sh | 0 {2021.04 => 2021.09}/apache/entrypoint.sh | 0 {2021.04 => 2021.09}/apache/setup_msmtp.sh | 0 {2021.04 => 2021.09}/apache/upgrade.exclude | 0 {2021.07 => 2021.09}/fpm-alpine/Dockerfile | 8 +- .../fpm-alpine/config/00apcu.config.php | 0 .../fpm-alpine/config/01redis.config.php | 0 .../fpm-alpine/config/zz-docker.config.php | 0 {2021.04 => 2021.09}/fpm-alpine/cron.sh | 0 {2021.04 => 2021.09}/fpm-alpine/entrypoint.sh | 0 .../fpm-alpine/setup_msmtp.sh | 0 .../fpm-alpine/upgrade.exclude | 0 {2021.07 => 2021.09}/fpm/Dockerfile | 8 +- .../fpm/config/00apcu.config.php | 0 .../fpm/config/01redis.config.php | 0 .../fpm/config/zz-docker.config.php | 0 {2021.04 => 2021.09}/fpm/cron.sh | 0 {2021.04 => 2021.09}/fpm/entrypoint.sh | 0 {2021.04 => 2021.09}/fpm/setup_msmtp.sh | 0 {2021.04 => 2021.09}/fpm/upgrade.exclude | 0 {2021.09-rc => 2021.12-dev}/apache/Dockerfile | 4 +- .../apache/config/00apcu.config.php | 0 .../apache/config/01redis.config.php | 0 .../apache/config/zz-docker.config.php | 0 {2021.07 => 2021.12-dev}/apache/cron.sh | 0 .../apache/entrypoint-dev.sh | 0 {2021.07 => 2021.12-dev}/apache/entrypoint.sh | 0 .../apache/setup_msmtp.sh | 0 .../apache/upgrade.exclude | 0 .../fpm-alpine/Dockerfile | 4 +- .../fpm-alpine/config/00apcu.config.php | 0 .../fpm-alpine/config/01redis.config.php | 0 .../fpm-alpine/config/zz-docker.config.php | 0 {2021.07 => 2021.12-dev}/fpm-alpine/cron.sh | 0 .../fpm-alpine/entrypoint-dev.sh | 0 .../fpm-alpine/entrypoint.sh | 0 .../fpm-alpine/setup_msmtp.sh | 0 .../fpm-alpine/upgrade.exclude | 0 {2021.09-rc => 2021.12-dev}/fpm/Dockerfile | 4 +- .../fpm/config/00apcu.config.php | 0 .../fpm/config/01redis.config.php | 0 .../fpm/config/zz-docker.config.php | 0 {2021.07 => 2021.12-dev}/fpm/cron.sh | 0 .../fpm/entrypoint-dev.sh | 0 {2021.07 => 2021.12-dev}/fpm/entrypoint.sh | 0 {2021.07 => 2021.12-dev}/fpm/setup_msmtp.sh | 0 {2021.07 => 2021.12-dev}/fpm/upgrade.exclude | 0 develop.txt | 2 +- latest.txt | 2 +- 104 files changed, 20 insertions(+), 2908 deletions(-) delete mode 100644 2021.04/fpm-alpine/Dockerfile delete mode 100644 2021.04/fpm/Dockerfile delete mode 100644 2021.07/apache/Dockerfile delete mode 100644 2021.09-dev/apache/Dockerfile delete mode 100644 2021.09-dev/apache/config/00apcu.config.php delete mode 100644 2021.09-dev/apache/config/01redis.config.php delete mode 100644 2021.09-dev/apache/config/zz-docker.config.php delete mode 100755 2021.09-dev/apache/cron.sh delete mode 100755 2021.09-dev/apache/entrypoint.sh delete mode 100644 2021.09-dev/apache/setup_msmtp.sh delete mode 100644 2021.09-dev/apache/upgrade.exclude delete mode 100644 2021.09-dev/fpm-alpine/Dockerfile delete mode 100644 2021.09-dev/fpm-alpine/config/00apcu.config.php delete mode 100644 2021.09-dev/fpm-alpine/config/01redis.config.php delete mode 100644 2021.09-dev/fpm-alpine/config/zz-docker.config.php delete mode 100755 2021.09-dev/fpm-alpine/cron.sh delete mode 100755 2021.09-dev/fpm-alpine/entrypoint.sh delete mode 100644 2021.09-dev/fpm-alpine/setup_msmtp.sh delete mode 100644 2021.09-dev/fpm-alpine/upgrade.exclude delete mode 100644 2021.09-dev/fpm/Dockerfile delete mode 100644 2021.09-dev/fpm/config/00apcu.config.php delete mode 100644 2021.09-dev/fpm/config/01redis.config.php delete mode 100644 2021.09-dev/fpm/config/zz-docker.config.php delete mode 100755 2021.09-dev/fpm/cron.sh delete mode 100755 2021.09-dev/fpm/entrypoint.sh delete mode 100644 2021.09-dev/fpm/setup_msmtp.sh delete mode 100644 2021.09-dev/fpm/upgrade.exclude delete mode 100644 2021.09-rc/apache/config/00apcu.config.php delete mode 100644 2021.09-rc/apache/config/01redis.config.php delete mode 100644 2021.09-rc/apache/config/zz-docker.config.php delete mode 100755 2021.09-rc/apache/cron.sh delete mode 100755 2021.09-rc/apache/entrypoint-dev.sh delete mode 100755 2021.09-rc/apache/entrypoint.sh delete mode 100644 2021.09-rc/apache/setup_msmtp.sh delete mode 100644 2021.09-rc/apache/upgrade.exclude delete mode 100644 2021.09-rc/fpm-alpine/config/00apcu.config.php delete mode 100644 2021.09-rc/fpm-alpine/config/01redis.config.php delete mode 100644 2021.09-rc/fpm-alpine/config/zz-docker.config.php delete mode 100755 2021.09-rc/fpm-alpine/cron.sh delete mode 100755 2021.09-rc/fpm-alpine/entrypoint-dev.sh delete mode 100755 2021.09-rc/fpm-alpine/entrypoint.sh delete mode 100644 2021.09-rc/fpm-alpine/setup_msmtp.sh delete mode 100644 2021.09-rc/fpm-alpine/upgrade.exclude delete mode 100644 2021.09-rc/fpm/config/00apcu.config.php delete mode 100644 2021.09-rc/fpm/config/01redis.config.php delete mode 100644 2021.09-rc/fpm/config/zz-docker.config.php delete mode 100755 2021.09-rc/fpm/cron.sh delete mode 100755 2021.09-rc/fpm/entrypoint-dev.sh delete mode 100755 2021.09-rc/fpm/entrypoint.sh delete mode 100644 2021.09-rc/fpm/setup_msmtp.sh delete mode 100644 2021.09-rc/fpm/upgrade.exclude rename {2021.04 => 2021.09}/apache/Dockerfile (95%) rename {2021.04 => 2021.09}/apache/config/00apcu.config.php (100%) rename {2021.04 => 2021.09}/apache/config/01redis.config.php (100%) rename {2021.04 => 2021.09}/apache/config/zz-docker.config.php (100%) rename {2021.04 => 2021.09}/apache/cron.sh (100%) rename {2021.04 => 2021.09}/apache/entrypoint.sh (100%) rename {2021.04 => 2021.09}/apache/setup_msmtp.sh (100%) rename {2021.04 => 2021.09}/apache/upgrade.exclude (100%) rename {2021.07 => 2021.09}/fpm-alpine/Dockerfile (95%) rename {2021.04 => 2021.09}/fpm-alpine/config/00apcu.config.php (100%) rename {2021.04 => 2021.09}/fpm-alpine/config/01redis.config.php (100%) rename {2021.04 => 2021.09}/fpm-alpine/config/zz-docker.config.php (100%) rename {2021.04 => 2021.09}/fpm-alpine/cron.sh (100%) rename {2021.04 => 2021.09}/fpm-alpine/entrypoint.sh (100%) rename {2021.04 => 2021.09}/fpm-alpine/setup_msmtp.sh (100%) rename {2021.04 => 2021.09}/fpm-alpine/upgrade.exclude (100%) rename {2021.07 => 2021.09}/fpm/Dockerfile (95%) rename {2021.04 => 2021.09}/fpm/config/00apcu.config.php (100%) rename {2021.04 => 2021.09}/fpm/config/01redis.config.php (100%) rename {2021.04 => 2021.09}/fpm/config/zz-docker.config.php (100%) rename {2021.04 => 2021.09}/fpm/cron.sh (100%) rename {2021.04 => 2021.09}/fpm/entrypoint.sh (100%) rename {2021.04 => 2021.09}/fpm/setup_msmtp.sh (100%) rename {2021.04 => 2021.09}/fpm/upgrade.exclude (100%) rename {2021.09-rc => 2021.12-dev}/apache/Dockerfile (98%) rename {2021.07 => 2021.12-dev}/apache/config/00apcu.config.php (100%) rename {2021.07 => 2021.12-dev}/apache/config/01redis.config.php (100%) rename {2021.07 => 2021.12-dev}/apache/config/zz-docker.config.php (100%) rename {2021.07 => 2021.12-dev}/apache/cron.sh (100%) rename {2021.09-dev => 2021.12-dev}/apache/entrypoint-dev.sh (100%) rename {2021.07 => 2021.12-dev}/apache/entrypoint.sh (100%) rename {2021.07 => 2021.12-dev}/apache/setup_msmtp.sh (100%) rename {2021.07 => 2021.12-dev}/apache/upgrade.exclude (100%) rename {2021.09-rc => 2021.12-dev}/fpm-alpine/Dockerfile (98%) rename {2021.07 => 2021.12-dev}/fpm-alpine/config/00apcu.config.php (100%) rename {2021.07 => 2021.12-dev}/fpm-alpine/config/01redis.config.php (100%) rename {2021.07 => 2021.12-dev}/fpm-alpine/config/zz-docker.config.php (100%) rename {2021.07 => 2021.12-dev}/fpm-alpine/cron.sh (100%) rename {2021.09-dev => 2021.12-dev}/fpm-alpine/entrypoint-dev.sh (100%) rename {2021.07 => 2021.12-dev}/fpm-alpine/entrypoint.sh (100%) rename {2021.07 => 2021.12-dev}/fpm-alpine/setup_msmtp.sh (100%) rename {2021.07 => 2021.12-dev}/fpm-alpine/upgrade.exclude (100%) rename {2021.09-rc => 2021.12-dev}/fpm/Dockerfile (97%) rename {2021.07 => 2021.12-dev}/fpm/config/00apcu.config.php (100%) rename {2021.07 => 2021.12-dev}/fpm/config/01redis.config.php (100%) rename {2021.07 => 2021.12-dev}/fpm/config/zz-docker.config.php (100%) rename {2021.07 => 2021.12-dev}/fpm/cron.sh (100%) rename {2021.09-dev => 2021.12-dev}/fpm/entrypoint-dev.sh (100%) rename {2021.07 => 2021.12-dev}/fpm/entrypoint.sh (100%) rename {2021.07 => 2021.12-dev}/fpm/setup_msmtp.sh (100%) rename {2021.07 => 2021.12-dev}/fpm/upgrade.exclude (100%) diff --git a/2021.04/fpm-alpine/Dockerfile b/2021.04/fpm-alpine/Dockerfile deleted file mode 100644 index 05b42af..0000000 --- a/2021.04/fpm-alpine/Dockerfile +++ /dev/null @@ -1,172 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:7.3-fpm-alpine - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - apk add --no-cache \ - rsync \ -# For mail() support - msmtp \ - shadow \ - tini; - -ENV GOSU_VERSION 1.14 -RUN set -eux; \ - \ - apk add --no-cache --virtual .gosu-deps \ - ca-certificates \ - dpkg \ - gnupg \ - ; \ - \ - dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ - \ -# verify the signature - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ - gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ - command -v gpgconf && gpgconf --kill all || :; \ - rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ - \ -# clean up fetch dependencies - apk del --no-network .gosu-deps; \ - \ - chmod +x /usr/local/bin/gosu; \ -# verify that the binary works - gosu --version; \ - gosu nobody true - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - apk add --no-cache --virtual .build-deps \ - mariadb-client \ - bash \ - $PHPIZE_DEPS \ - libpng-dev \ - libjpeg-turbo-dev \ - imagemagick-dev \ - libtool \ - libmemcached-dev \ - cyrus-sasl-dev \ - libjpeg-turbo-dev \ - freetype-dev \ - librsvg \ - pcre-dev \ - libzip-dev \ - icu-dev \ - openldap-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install APCu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ - apk del --no-network .build-deps; - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.04" -ENV FRIENDICA_ADDONS "2021.04" -ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6e1bbe88932a1ce4" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" - -RUN set -ex; \ - apk add --no-cache --virtual .fetch-deps \ - gnupg \ - ; \ - \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ - \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ - \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME"; \ - \ - apk del .fetch-deps - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/2021.04/fpm/Dockerfile b/2021.04/fpm/Dockerfile deleted file mode 100644 index 4471760..0000000 --- a/2021.04/fpm/Dockerfile +++ /dev/null @@ -1,164 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-fpm-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ -# For mail() support - msmtp \ - tini \ -# For setuid/setgid support - gosu \ - ; \ -# Verify that the binary works - gosu nobody true; \ - rm -rf /var/lib/apt/lists/*; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.04" -ENV FRIENDICA_ADDONS "2021.04" -ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6e1bbe88932a1ce4" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" - -RUN set -ex; \ - fetchDeps=" \ - gnupg \ - "; \ - apt-get update; \ - apt-get install -y --no-install-recommends $fetchDeps; \ - \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ - \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ - \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME"; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ - rm -rf /var/lib/apt/lists/* - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/2021.07/apache/Dockerfile b/2021.07/apache/Dockerfile deleted file mode 100644 index b5ea1b2..0000000 --- a/2021.07/apache/Dockerfile +++ /dev/null @@ -1,173 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-apache-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ -# For mail() support - msmtp \ - tini \ -# For setuid/setgid support - gosu \ - ; \ -# Verify that the binary works - gosu nobody true; \ - rm -rf /var/lib/apt/lists/*; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - -RUN set -ex;\ - a2enmod rewrite remoteip ;\ - {\ - echo RemoteIPHeader X-Real-IP ;\ - echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ - echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ - echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ - } > /etc/apache2/conf-available/remoteip.conf;\ - a2enconf remoteip - -ENV FRIENDICA_VERSION "2021.07" -ENV FRIENDICA_ADDONS "2021.07" -ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00f1452760eeeda12" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" - -RUN set -ex; \ - fetchDeps=" \ - gnupg \ - "; \ - apt-get update; \ - apt-get install -y --no-install-recommends $fetchDeps; \ - \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287; \ - \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \ - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc \ - "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; \ - gpg --batch --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz; \ - echo "${FRIENDICA_DOWNLOAD_SHA256} *friendica-full-${FRIENDICA_VERSION}.tar.gz" | sha256sum -c; \ - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/; \ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc; \ - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica; \ - chmod 777 /usr/src/friendica/view/smarty3; \ - \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz"; \ - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc \ - "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc"; \ - gpg --batch --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz; \ - echo "${FRIENDICA_DOWNLOAD_ADDONS_SHA256} *friendica-addons-${FRIENDICA_ADDONS}.tar.gz" | sha256sum -c; \ - mkdir -p /usr/src/friendica/proxy; \ - mkdir -p /usr/src/friendica/addon; \ - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc; \ - \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME"; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ - rm -rf /var/lib/apt/lists/* - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["apache2-foreground"] diff --git a/2021.09-dev/apache/Dockerfile b/2021.09-dev/apache/Dockerfile deleted file mode 100644 index 8364898..0000000 --- a/2021.09-dev/apache/Dockerfile +++ /dev/null @@ -1,140 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-apache-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ -# For mail() support - msmtp \ - tini \ -# For setuid/setgid support - gosu \ - ; \ -# Verify that the binary works - gosu nobody true; \ - rm -rf /var/lib/apt/lists/*; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - -RUN set -ex;\ - a2enmod rewrite remoteip ;\ - {\ - echo RemoteIPHeader X-Real-IP ;\ - echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ - echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ - echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ - } > /etc/apache2/conf-available/remoteip.conf;\ - a2enconf remoteip - -ENV FRIENDICA_VERSION "2021.09-dev" -ENV FRIENDICA_ADDONS "2021.09-dev" - -RUN set -ex; \ - fetchDeps=" \ - gnupg \ - "; \ - apt-get update; \ - apt-get install -y --no-install-recommends $fetchDeps; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["apache2-foreground"] diff --git a/2021.09-dev/apache/config/00apcu.config.php b/2021.09-dev/apache/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.09-dev/apache/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.09-dev/apache/config/01redis.config.php b/2021.09-dev/apache/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.09-dev/apache/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.09-dev/apache/config/zz-docker.config.php b/2021.09-dev/apache/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.09-dev/apache/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.09-dev/apache/cron.sh b/2021.09-dev/apache/cron.sh deleted file mode 100755 index 18dced0..0000000 --- a/2021.09-dev/apache/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start -else - echo "[ERROR] Waited 300 seconds, no response" >&2 -fi diff --git a/2021.09-dev/apache/entrypoint.sh b/2021.09-dev/apache/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.09-dev/apache/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.09-dev/apache/setup_msmtp.sh b/2021.09-dev/apache/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.09-dev/apache/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.09-dev/apache/upgrade.exclude b/2021.09-dev/apache/upgrade.exclude deleted file mode 100644 index b3420cc..0000000 --- a/2021.09-dev/apache/upgrade.exclude +++ /dev/null @@ -1,9 +0,0 @@ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log diff --git a/2021.09-dev/fpm-alpine/Dockerfile b/2021.09-dev/fpm-alpine/Dockerfile deleted file mode 100644 index 18722c8..0000000 --- a/2021.09-dev/fpm-alpine/Dockerfile +++ /dev/null @@ -1,140 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:7.3-fpm-alpine - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - apk add --no-cache \ - rsync \ -# For mail() support - msmtp \ - shadow \ - tini; - -ENV GOSU_VERSION 1.14 -RUN set -eux; \ - \ - apk add --no-cache --virtual .gosu-deps \ - ca-certificates \ - dpkg \ - gnupg \ - ; \ - \ - dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ - \ -# verify the signature - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ - gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ - command -v gpgconf && gpgconf --kill all || :; \ - rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ - \ -# clean up fetch dependencies - apk del --no-network .gosu-deps; \ - \ - chmod +x /usr/local/bin/gosu; \ -# verify that the binary works - gosu --version; \ - gosu nobody true - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - apk add --no-cache --virtual .build-deps \ - mariadb-client \ - bash \ - $PHPIZE_DEPS \ - libpng-dev \ - libjpeg-turbo-dev \ - imagemagick-dev \ - libtool \ - libmemcached-dev \ - cyrus-sasl-dev \ - libjpeg-turbo-dev \ - freetype-dev \ - librsvg \ - pcre-dev \ - libzip-dev \ - icu-dev \ - openldap-dev \ - ; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - \ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install APCu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-network --virtual .friendica-phpext-rundeps $runDeps; \ - apk del --no-network .build-deps; - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.09-dev" -ENV FRIENDICA_ADDONS "2021.09-dev" - -RUN set -ex; \ - apk add --no-cache --virtual .fetch-deps \ - gnupg \ - ; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["php-fpm"] diff --git a/2021.09-dev/fpm-alpine/config/00apcu.config.php b/2021.09-dev/fpm-alpine/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.09-dev/fpm-alpine/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.09-dev/fpm-alpine/config/01redis.config.php b/2021.09-dev/fpm-alpine/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.09-dev/fpm-alpine/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.09-dev/fpm-alpine/config/zz-docker.config.php b/2021.09-dev/fpm-alpine/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.09-dev/fpm-alpine/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.09-dev/fpm-alpine/cron.sh b/2021.09-dev/fpm-alpine/cron.sh deleted file mode 100755 index 18dced0..0000000 --- a/2021.09-dev/fpm-alpine/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start -else - echo "[ERROR] Waited 300 seconds, no response" >&2 -fi diff --git a/2021.09-dev/fpm-alpine/entrypoint.sh b/2021.09-dev/fpm-alpine/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.09-dev/fpm-alpine/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.09-dev/fpm-alpine/setup_msmtp.sh b/2021.09-dev/fpm-alpine/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.09-dev/fpm-alpine/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.09-dev/fpm-alpine/upgrade.exclude b/2021.09-dev/fpm-alpine/upgrade.exclude deleted file mode 100644 index b3420cc..0000000 --- a/2021.09-dev/fpm-alpine/upgrade.exclude +++ /dev/null @@ -1,9 +0,0 @@ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log diff --git a/2021.09-dev/fpm/Dockerfile b/2021.09-dev/fpm/Dockerfile deleted file mode 100644 index fe7938d..0000000 --- a/2021.09-dev/fpm/Dockerfile +++ /dev/null @@ -1,131 +0,0 @@ -# DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:7.3-fpm-buster - -# entrypoint.sh and cron.sh dependencies -RUN set -ex; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - rsync \ - bzip2 \ -# For mail() support - msmtp \ - tini \ -# For setuid/setgid support - gosu \ - ; \ -# Verify that the binary works - gosu nobody true; \ - rm -rf /var/lib/apt/lists/*; - -# install the PHP extensions we need -# see https://friendi.ca/resources/requirements/ -RUN set -ex; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - mariadb-client \ - bash \ - libpng-dev \ - libjpeg62-turbo-dev \ - libtool \ - libmagick++-dev \ - libmemcached-dev \ - libgraphicsmagick1-dev \ - libfreetype6-dev \ - librsvg2-2 \ - libzip-dev \ - libldap2-dev \ - ; \ - \ - debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ - \ - docker-php-ext-configure gd \ - --with-gd \ - --with-freetype-dir=/usr/include/ \ - --with-png-dir=/usr/include/ \ - --with-jpeg-dir=/usr/include/ \ - ; \ - docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ;\ - docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - ctype \ - pcntl \ - ldap \ - ; \ - \ -# pecl will claim success even if one install fails, so we need to perform each install separately - pecl install apcu-5.1.20; \ - pecl install memcached-3.1.5; \ - pecl install redis-5.3.4; \ - pecl install imagick-3.5.1; \ - \ - docker-php-ext-enable \ - apcu \ - memcached \ - redis \ - imagick \ - ; \ - \ -# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ - | awk '/=>/ { print $3 }' \ - | sort -u \ - | xargs -r dpkg-query -S \ - | cut -d: -f1 \ - | sort -u \ - | xargs -rt apt-mark manual; \ - \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* - -# set recommended PHP.ini settings -RUN set -ex; \ - { \ - echo 'opcache.enable=1' ; \ - echo 'opcache.interned_strings_buffer=8'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidte_freq=1'; \ - } > /usr/local/etc/php/conf.d/opcache-recommended.ini; \ - \ - { \ - echo sendmail_path = "/usr/bin/msmtp -t"; \ - } > /usr/local/etc/php/conf.d/sendmail.ini; \ - \ - echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ - \ - echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \ - \ - mkdir /var/www/data; \ - chown -R www-data:root /var/www; \ - chmod -R g=u /var/www - -VOLUME /var/www/html - - -ENV FRIENDICA_VERSION "2021.09-dev" -ENV FRIENDICA_ADDONS "2021.09-dev" - -RUN set -ex; \ - fetchDeps=" \ - gnupg \ - "; \ - apt-get update; \ - apt-get install -y --no-install-recommends $fetchDeps; - -COPY *.sh upgrade.exclude / -COPY config/* /usr/src/friendica/config/ - -ENTRYPOINT ["/entrypoint-dev.sh"] -CMD ["php-fpm"] diff --git a/2021.09-dev/fpm/config/00apcu.config.php b/2021.09-dev/fpm/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.09-dev/fpm/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.09-dev/fpm/config/01redis.config.php b/2021.09-dev/fpm/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.09-dev/fpm/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.09-dev/fpm/config/zz-docker.config.php b/2021.09-dev/fpm/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.09-dev/fpm/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.09-dev/fpm/cron.sh b/2021.09-dev/fpm/cron.sh deleted file mode 100755 index 18dced0..0000000 --- a/2021.09-dev/fpm/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start -else - echo "[ERROR] Waited 300 seconds, no response" >&2 -fi diff --git a/2021.09-dev/fpm/entrypoint.sh b/2021.09-dev/fpm/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.09-dev/fpm/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.09-dev/fpm/setup_msmtp.sh b/2021.09-dev/fpm/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.09-dev/fpm/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.09-dev/fpm/upgrade.exclude b/2021.09-dev/fpm/upgrade.exclude deleted file mode 100644 index b3420cc..0000000 --- a/2021.09-dev/fpm/upgrade.exclude +++ /dev/null @@ -1,9 +0,0 @@ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log diff --git a/2021.09-rc/apache/config/00apcu.config.php b/2021.09-rc/apache/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.09-rc/apache/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.09-rc/apache/config/01redis.config.php b/2021.09-rc/apache/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.09-rc/apache/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.09-rc/apache/config/zz-docker.config.php b/2021.09-rc/apache/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.09-rc/apache/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.09-rc/apache/cron.sh b/2021.09-rc/apache/cron.sh deleted file mode 100755 index 18dced0..0000000 --- a/2021.09-rc/apache/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start -else - echo "[ERROR] Waited 300 seconds, no response" >&2 -fi diff --git a/2021.09-rc/apache/entrypoint-dev.sh b/2021.09-rc/apache/entrypoint-dev.sh deleted file mode 100755 index 2f2bd3e..0000000 --- a/2021.09-rc/apache/entrypoint-dev.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -set -eu - -# just check if we execute apache or php-fpm -if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" - curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - - # Don't download already latest sources - if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ - cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ - cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then - echo "Already latest sources - skipped download" - else - - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" - - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" - - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" - - chmod 777 /usr/src/friendica/view/smarty3 - - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" - - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" - - gpgconf --kill all - rm -rf "$GNUPGHOME" - - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 - mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.09-rc/apache/entrypoint.sh b/2021.09-rc/apache/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.09-rc/apache/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.09-rc/apache/setup_msmtp.sh b/2021.09-rc/apache/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.09-rc/apache/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.09-rc/apache/upgrade.exclude b/2021.09-rc/apache/upgrade.exclude deleted file mode 100644 index b3420cc..0000000 --- a/2021.09-rc/apache/upgrade.exclude +++ /dev/null @@ -1,9 +0,0 @@ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log diff --git a/2021.09-rc/fpm-alpine/config/00apcu.config.php b/2021.09-rc/fpm-alpine/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.09-rc/fpm-alpine/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.09-rc/fpm-alpine/config/01redis.config.php b/2021.09-rc/fpm-alpine/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.09-rc/fpm-alpine/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.09-rc/fpm-alpine/config/zz-docker.config.php b/2021.09-rc/fpm-alpine/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.09-rc/fpm-alpine/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.09-rc/fpm-alpine/cron.sh b/2021.09-rc/fpm-alpine/cron.sh deleted file mode 100755 index 18dced0..0000000 --- a/2021.09-rc/fpm-alpine/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start -else - echo "[ERROR] Waited 300 seconds, no response" >&2 -fi diff --git a/2021.09-rc/fpm-alpine/entrypoint-dev.sh b/2021.09-rc/fpm-alpine/entrypoint-dev.sh deleted file mode 100755 index 2f2bd3e..0000000 --- a/2021.09-rc/fpm-alpine/entrypoint-dev.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -set -eu - -# just check if we execute apache or php-fpm -if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" - curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - - # Don't download already latest sources - if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ - cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ - cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then - echo "Already latest sources - skipped download" - else - - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" - - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" - - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" - - chmod 777 /usr/src/friendica/view/smarty3 - - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" - - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" - - gpgconf --kill all - rm -rf "$GNUPGHOME" - - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 - mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm-alpine/entrypoint.sh b/2021.09-rc/fpm-alpine/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.09-rc/fpm-alpine/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.09-rc/fpm-alpine/setup_msmtp.sh b/2021.09-rc/fpm-alpine/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.09-rc/fpm-alpine/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.09-rc/fpm-alpine/upgrade.exclude b/2021.09-rc/fpm-alpine/upgrade.exclude deleted file mode 100644 index b3420cc..0000000 --- a/2021.09-rc/fpm-alpine/upgrade.exclude +++ /dev/null @@ -1,9 +0,0 @@ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log diff --git a/2021.09-rc/fpm/config/00apcu.config.php b/2021.09-rc/fpm/config/00apcu.config.php deleted file mode 100644 index d6dac4f..0000000 --- a/2021.09-rc/fpm/config/00apcu.config.php +++ /dev/null @@ -1,12 +0,0 @@ - [ - 'cache_driver' => 'apcu', - 'session_handler' => 'cache', - ], -]; diff --git a/2021.09-rc/fpm/config/01redis.config.php b/2021.09-rc/fpm/config/01redis.config.php deleted file mode 100644 index 1a43c95..0000000 --- a/2021.09-rc/fpm/config/01redis.config.php +++ /dev/null @@ -1,15 +0,0 @@ - [ - 'lock_driver' => 'redis', - 'redis_host' => getenv('REDIS_HOST'), - 'redis_port' => (getenv('REDIS_PORT') ? getenv('REDIS_PORT') : ''), - 'redis_password' => (getenv('REDIS_PW') ? getenv('REDIS_PW') : ''), - 'redis_db' => (getenv('REDIS_DB') ? getenv('REDIS_DB') : 0), - ], - ]; -} else { - return []; -} diff --git a/2021.09-rc/fpm/config/zz-docker.config.php b/2021.09-rc/fpm/config/zz-docker.config.php deleted file mode 100644 index 49ca5bd..0000000 --- a/2021.09-rc/fpm/config/zz-docker.config.php +++ /dev/null @@ -1,68 +0,0 @@ - [ - // Necessary because otherwise the daemon isn't working - 'pidfile' => '/var/run/friendica.pid', - - 'logfile' => '/var/www/html/friendica.log', - 'loglevel' => 'notice', - ], - 'storage' => [ - 'filesystem_path' => '/var/www/html/storage', - ], -]; - -if (getenv('FRIENDICA_TZ')) { - $config['config']['timezone'] = getenv('FRIENDICA_TZ'); -} - -if (getenv('FRIENDICA_LANG')) { - $config['config']['language'] = getenv('FRIENDICA_LANG'); -} - -if (getenv('FRIENDICA_ADMIN_MAIL')) { - $config['config']['admin_email'] = getenv('FRIENDICA_ADMIN_MAIL'); -} - -if (getenv('FRIENDICA_SITENAME')) { - $config['config']['sitename'] = getenv('FRIENDICA_SITENAME'); -} - -if (!empty(getenv('FRIENDICA_NO_VALIDATION'))) { - $config['system']['disable_url_validation'] = true; - $config['system']['disable_email_validation'] = true; -} - -if (!empty(getenv('FRIENDICA_DATA'))) { - $config['storage']['class'] = \Friendica\Model\Storage\Filesystem::class; - - if (!empty(getenv('FRIENDICA_DATA_DIR'))) { - $config['storage']['filesystem_path'] = getenv('FRIENDICA_DATA'); - } -} - -if (!empty(getenv('FRIENDICA_DEBUGGING'))) { - $config['system']['debugging'] = true; - if (!empty(getenv('FRIENDICA_LOGFILE'))) { - $config['system']['logfile'] = getenv('FRIENDICA_LOGFILE'); - } - if (!empty(getenv('FRIENDICA_LOGLEVEL'))) { - $config['system']['loglevel'] = getenv('FRIENDICA_LOGLEVEL'); - } -} - -if (!empty(getenv('SMTP_DOMAIN'))) { - $smtp_from = !empty(getenv('SMTP_FROM')) ? getenv('SMTP_FROM') : 'no-reply'; - - $config['config']['sender_email'] = $smtp_from . "@" . getenv('SMTP_DOMAIN'); -} - -return $config; diff --git a/2021.09-rc/fpm/cron.sh b/2021.09-rc/fpm/cron.sh deleted file mode 100755 index 18dced0..0000000 --- a/2021.09-rc/fpm/cron.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -trap "break;exit" HUP INT TERM - -while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 -done - -echo "Waiting for MySQL $MYSQL_HOST initialization..." -if php /var/www/html/bin/wait-for-connection "$MYSQL_HOST" "${MYSQL_PORT:-3306}" 300; then - sh /setup_msmtp.sh - exec gosu www-data:www-data tini -- php /var/www/html/bin/daemon.php -f start -else - echo "[ERROR] Waited 300 seconds, no response" >&2 -fi diff --git a/2021.09-rc/fpm/entrypoint-dev.sh b/2021.09-rc/fpm/entrypoint-dev.sh deleted file mode 100755 index 2f2bd3e..0000000 --- a/2021.09-rc/fpm/entrypoint-dev.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -set -eu - -# just check if we execute apache or php-fpm -if (expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]) && [ "${FRIENDICA_DISABLE_UPGRADE:-false}" = "false" ]; then - curl -fsSL -o "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" - curl -fsSL -o "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "https://files.friendi.ca/friendica-full-${FRIENDICA_ADDONS}.tar.gz.sum256" - - # Don't download already latest sources - if [ -f "/usr/src/friendica.tar.gz.sum256" ] && [ -f "/usr/src/friendica-addons.tar.gz.sum256" ] && \ - cmp -s "/usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256" "/usr/src/friendica.tar.gz.sum256" && \ - cmp -s "/usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256" "/usr/src/friendica-addons.tar.gz.sum256"; then - echo "Already latest sources - skipped download" - else - - echo "Download sources for ${FRIENDICA_VERSION} (Addon: ${FRIENDICA_ADDONS})" - - # Removing the whole directory first - rm -fr /usr/src/friendica - export GNUPGHOME="$(mktemp -d)" - - gpg --batch --logger-fd=1 --no-tty --quiet --keyserver keyserver.ubuntu.com --recv-keys 08656443618E6567A39524083EE197EF3F9E4287 - - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz" - curl -fsSL -o friendica-full-${FRIENDICA_VERSION}.tar.gz.asc "https://files.friendi.ca/friendica-full-${FRIENDICA_VERSION}.tar.gz.asc"; - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-full-${FRIENDICA_VERSION}.tar.gz.asc friendica-full-${FRIENDICA_VERSION}.tar.gz - echo "Core sources (${FRIENDICA_VERSION}) verified" - - tar -xzf friendica-full-${FRIENDICA_VERSION}.tar.gz -C /usr/src/ - rm friendica-full-${FRIENDICA_VERSION}.tar.gz friendica-full-${FRIENDICA_VERSION}.tar.gz.asc - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}/ /usr/src/friendica - echo "Core sources (${FRIENDICA_VERSION}) extracted" - - chmod 777 /usr/src/friendica/view/smarty3 - - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz" - curl -fsSL -o friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc "https://files.friendi.ca/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc" - gpg --batch --logger-fd=1 --no-tty --quiet --verify friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc friendica-addons-${FRIENDICA_ADDONS}.tar.gz - echo "Addon sources (${FRIENDICA_ADDONS}) verified" - - mkdir -p /usr/src/friendica/addon - tar -xzf friendica-addons-${FRIENDICA_ADDONS}.tar.gz -C /usr/src/friendica/addon --strip-components=1 - rm friendica-addons-${FRIENDICA_ADDONS}.tar.gz friendica-addons-${FRIENDICA_ADDONS}.tar.gz.asc - echo "Addon sources (${FRIENDICA_ADDONS}) extracted" - - gpgconf --kill all - rm -rf "$GNUPGHOME" - - mv -f /usr/src/friendica-full-${FRIENDICA_VERSION}.tar.gz.sum256 /usr/src/friendica.tar.gz.sum256 - mv -f /usr/src/friendica-addons-${FRIENDICA_ADDONS}.tar.gz.sum256 /usr/src/friendica-addons.tar.gz.sum256 - fi -fi - -exec /entrypoint.sh "$@" diff --git a/2021.09-rc/fpm/entrypoint.sh b/2021.09-rc/fpm/entrypoint.sh deleted file mode 100755 index fa51564..0000000 --- a/2021.09-rc/fpm/entrypoint.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh -set -eu - -# run an command with the www-data user -run_as() { - set -- -c "cd /var/www/html; $*" - if [ "$(id -u)" -eq 0 ]; then - su - www-data -s /bin/sh "$@" - else - sh "$@" - fi -} - -# checks if the the first parameter is greater than the second parameter -version_greater() { - [ "$(printf '%s\n' "$@" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/' | sort -t '.' -k1,1n -k2,2n -k3,3nbr | head -n 1)" != "$(printf "$1" | sed -e 's/-rc/.1/' | sed -e 's/-dev/.2/')" ] -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") - local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") - if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - if [ -n "${varValue}" ]; then - export "$var"="${varValue}" - elif [ -n "${fileVarValue}" ]; then - export "$var"="$(cat "${fileVarValue}")" - elif [ -n "${def}" ]; then - export "$var"="$def" - fi - unset "$fileVar" -} - -sh /setup_msmtp.sh - -# just check if we execute apache or php-fpm -if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ]; then - installed_version="0.0.0.0" - if [ -f /var/www/html/VERSION ]; then - installed_version="$(cat /var/www/html/VERSION)" - fi - - image_version="$(cat /usr/src/friendica/VERSION)" - - # no downgrading possible - if version_greater "$installed_version" "$image_version"; then - echo "Can't copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ($image_version)" - exit 1 - fi - - # check it just in case the version is greater or if we force the upgrade - if version_greater "$image_version" "$installed_version" || [ "${FRIENDICA_UPGRADE:-false}" = "true" ]; then - echo "Initializing Friendica $image_version ..." - - if [ "$installed_version" != "0.0.0.0" ]; then - echo "Upgrading Friendica from $installed_version ..." - fi - - if [ "$(id -u)" -eq 0 ]; then - rsync_options="-rlDog --chown=www-data:www-data" - else - rsync_options="-rlD" - fi - - rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/friendica/ /var/www/html/ - - # Update docker-based config files, but never delete other config files - rsync $rsync_options --update /usr/src/friendica/config/ /var/www/html/config/ - - # In case there is no .htaccess, copy it from the default dist file - if [ ! -f "/var/www/html/.htaccess" ]; then - cp "/var/www/html/.htaccess-dist" "/var/www/html/.htaccess" - fi - - if [ -d /var/www/html/view/smarty3 ]; then - chmod -R 777 /var/www/html/view/smarty3 - fi - echo "Initializing finished" - - # install - if [ "$installed_version" = "0.0.0.0" ]; then - echo "New Friendica instance" - - file_env FRIENDICA_ADMIN_MAIL - - file_env MYSQL_DATABASE - file_env MYSQL_USER - file_env MYSQL_PASSWORD - - install=false - if [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${FRIENDICA_ADMIN_MAIL+x}" ] && [ -n "${FRIENDICA_URL+x}" ]; then - echo "Installation with environment variables" - - FRIENDICA_TZ=${FRIENDICA_TZ:-America/LosAngeles} - FRIENDICA_LANG=${FRIENDICA_LANG:-en} - MYSQL_PORT=${MYSQL_PORT:-3306} - - # shellcheck disable=SC2016 - install_options='-s --dbhost "'$MYSQL_HOST'" --dbport "'$MYSQL_PORT'" --dbdata "'$MYSQL_DATABASE'" --dbuser "'$MYSQL_USER'" --dbpass "'$MYSQL_PASSWORD'"' - - # shellcheck disable=SC2016 - install_options=$install_options' --admin "'$FRIENDICA_ADMIN_MAIL'" --tz "'$FRIENDICA_TZ'" --lang "'$FRIENDICA_LANG'" --url "'$FRIENDICA_URL'"' - install=true - fi - - if [ "$install" = true ]; then - echo "Waiting for MySQL $MYSQL_HOST initialization..." - if run_as "php /var/www/html/bin/wait-for-connection $MYSQL_HOST ${MYSQL_PORT:-3306} 300"; then - - echo "Starting Friendica installation ..." - run_as "php /var/www/html/bin/console.php autoinstall $install_options" - - rm -fr /var/www/html/view/smarty3/compiled - - # load other config files (*.config.php) to the config folder - if [ -d "/usr/src/config" ]; then - rsync $rsync_options --ignore-existing /usr/src/config/ /var/www/html/config/ - fi - - echo "Installation finished" - else - echo "[ERROR] Waited 300 seconds, no response" >&2 - fi - else - echo "Running web-based installer on first connect!" - fi - # upgrade - else - echo "Upgrading Friendica ..." - run_as 'php /var/www/html/bin/console.php dbstructure update -f' - echo "Upgrading finished" - fi - fi -fi - -exec "$@" diff --git a/2021.09-rc/fpm/setup_msmtp.sh b/2021.09-rc/fpm/setup_msmtp.sh deleted file mode 100644 index b90c42c..0000000 --- a/2021.09-rc/fpm/setup_msmtp.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup MSMTP for '$SITENAME' with '$SMTP' ..." - - smtp_from="${SMTP_FROM:=no-reply}" - smtp_auth="${SMTP_AUTH:=on}" - - # Setup MSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data - - # add possible mail-senders - { - echo "www-data: $smtp_from@$SMTP_DOMAIN" - echo "root: $smtp_from@$SMTP_DOMAIN" - } >/etc/aliases - - # create msmtp settings - { - echo "account default" - echo "host $SMTP" - if [ -n "${SMTP_PORT+x}" ]; then echo "port $SMTP_PORT"; else echo "port 587"; fi - echo "from \"$smtp_from@$SMTP_DOMAIN\"" - echo "tls_certcheck off" # No certcheck because of internal docker mail-hostnames - if [ -n "${SMTP_TLS+x}" ]; then echo "tls on"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "tls_starttls on"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "auth $smtp_auth"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "user \"$SMTP_AUTH_USER\""; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "password \"$SMTP_AUTH_PASS\""; fi - echo "logfile /var/log/msmtp.log" - echo "aliases /etc/aliases" - } >/etc/msmtprc - - echo "Setup finished" -fi diff --git a/2021.09-rc/fpm/upgrade.exclude b/2021.09-rc/fpm/upgrade.exclude deleted file mode 100644 index b3420cc..0000000 --- a/2021.09-rc/fpm/upgrade.exclude +++ /dev/null @@ -1,9 +0,0 @@ -/photo/ -/proxy/ -/.htconfig.php -/.htaccess -/home.* -/config/ -/storage/ -/log/ -*.log diff --git a/2021.04/apache/Dockerfile b/2021.09/apache/Dockerfile similarity index 95% rename from 2021.04/apache/Dockerfile rename to 2021.09/apache/Dockerfile index adefd77..e33051b 100644 --- a/2021.04/apache/Dockerfile +++ b/2021.09/apache/Dockerfile @@ -123,10 +123,10 @@ RUN set -ex;\ } > /etc/apache2/conf-available/remoteip.conf;\ a2enconf remoteip -ENV FRIENDICA_VERSION "2021.04" -ENV FRIENDICA_ADDONS "2021.04" -ENV FRIENDICA_DOWNLOAD_SHA256 "440d3a39cd701c3a4179f89fcb1a7197c3bf03f02c087c4a6e1bbe88932a1ce4" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "6c798634ce75d25bb71c80a00fcd3b6dd48be3ca2e233ca0f9ed80981cba83af" +ENV FRIENDICA_VERSION "2021.09" +ENV FRIENDICA_ADDONS "2021.09" +ENV FRIENDICA_DOWNLOAD_SHA256 "8d44c7ee3cec161f9bc40032125636b13bfebaee37f59e9e5849d265f65a2d9e" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "b349cf54b5ca0bc93da3c023af639193b9df578d2ed47fccf12d3c581c178b45" RUN set -ex; \ fetchDeps=" \ diff --git a/2021.04/apache/config/00apcu.config.php b/2021.09/apache/config/00apcu.config.php similarity index 100% rename from 2021.04/apache/config/00apcu.config.php rename to 2021.09/apache/config/00apcu.config.php diff --git a/2021.04/apache/config/01redis.config.php b/2021.09/apache/config/01redis.config.php similarity index 100% rename from 2021.04/apache/config/01redis.config.php rename to 2021.09/apache/config/01redis.config.php diff --git a/2021.04/apache/config/zz-docker.config.php b/2021.09/apache/config/zz-docker.config.php similarity index 100% rename from 2021.04/apache/config/zz-docker.config.php rename to 2021.09/apache/config/zz-docker.config.php diff --git a/2021.04/apache/cron.sh b/2021.09/apache/cron.sh similarity index 100% rename from 2021.04/apache/cron.sh rename to 2021.09/apache/cron.sh diff --git a/2021.04/apache/entrypoint.sh b/2021.09/apache/entrypoint.sh similarity index 100% rename from 2021.04/apache/entrypoint.sh rename to 2021.09/apache/entrypoint.sh diff --git a/2021.04/apache/setup_msmtp.sh b/2021.09/apache/setup_msmtp.sh similarity index 100% rename from 2021.04/apache/setup_msmtp.sh rename to 2021.09/apache/setup_msmtp.sh diff --git a/2021.04/apache/upgrade.exclude b/2021.09/apache/upgrade.exclude similarity index 100% rename from 2021.04/apache/upgrade.exclude rename to 2021.09/apache/upgrade.exclude diff --git a/2021.07/fpm-alpine/Dockerfile b/2021.09/fpm-alpine/Dockerfile similarity index 95% rename from 2021.07/fpm-alpine/Dockerfile rename to 2021.09/fpm-alpine/Dockerfile index e3caf7e..6cf67fe 100644 --- a/2021.07/fpm-alpine/Dockerfile +++ b/2021.09/fpm-alpine/Dockerfile @@ -125,10 +125,10 @@ RUN set -ex; \ VOLUME /var/www/html -ENV FRIENDICA_VERSION "2021.07" -ENV FRIENDICA_ADDONS "2021.07" -ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00f1452760eeeda12" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" +ENV FRIENDICA_VERSION "2021.09" +ENV FRIENDICA_ADDONS "2021.09" +ENV FRIENDICA_DOWNLOAD_SHA256 "8d44c7ee3cec161f9bc40032125636b13bfebaee37f59e9e5849d265f65a2d9e" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "b349cf54b5ca0bc93da3c023af639193b9df578d2ed47fccf12d3c581c178b45" RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ diff --git a/2021.04/fpm-alpine/config/00apcu.config.php b/2021.09/fpm-alpine/config/00apcu.config.php similarity index 100% rename from 2021.04/fpm-alpine/config/00apcu.config.php rename to 2021.09/fpm-alpine/config/00apcu.config.php diff --git a/2021.04/fpm-alpine/config/01redis.config.php b/2021.09/fpm-alpine/config/01redis.config.php similarity index 100% rename from 2021.04/fpm-alpine/config/01redis.config.php rename to 2021.09/fpm-alpine/config/01redis.config.php diff --git a/2021.04/fpm-alpine/config/zz-docker.config.php b/2021.09/fpm-alpine/config/zz-docker.config.php similarity index 100% rename from 2021.04/fpm-alpine/config/zz-docker.config.php rename to 2021.09/fpm-alpine/config/zz-docker.config.php diff --git a/2021.04/fpm-alpine/cron.sh b/2021.09/fpm-alpine/cron.sh similarity index 100% rename from 2021.04/fpm-alpine/cron.sh rename to 2021.09/fpm-alpine/cron.sh diff --git a/2021.04/fpm-alpine/entrypoint.sh b/2021.09/fpm-alpine/entrypoint.sh similarity index 100% rename from 2021.04/fpm-alpine/entrypoint.sh rename to 2021.09/fpm-alpine/entrypoint.sh diff --git a/2021.04/fpm-alpine/setup_msmtp.sh b/2021.09/fpm-alpine/setup_msmtp.sh similarity index 100% rename from 2021.04/fpm-alpine/setup_msmtp.sh rename to 2021.09/fpm-alpine/setup_msmtp.sh diff --git a/2021.04/fpm-alpine/upgrade.exclude b/2021.09/fpm-alpine/upgrade.exclude similarity index 100% rename from 2021.04/fpm-alpine/upgrade.exclude rename to 2021.09/fpm-alpine/upgrade.exclude diff --git a/2021.07/fpm/Dockerfile b/2021.09/fpm/Dockerfile similarity index 95% rename from 2021.07/fpm/Dockerfile rename to 2021.09/fpm/Dockerfile index dbe5ff5..8584968 100644 --- a/2021.07/fpm/Dockerfile +++ b/2021.09/fpm/Dockerfile @@ -114,10 +114,10 @@ RUN set -ex; \ VOLUME /var/www/html -ENV FRIENDICA_VERSION "2021.07" -ENV FRIENDICA_ADDONS "2021.07" -ENV FRIENDICA_DOWNLOAD_SHA256 "d57ebb33ff733f0ad023ad63e8992d8f61cec06363b951d00f1452760eeeda12" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "9752046c5af1003338a668683b24476cfb3f8dfeaef466703492a0883581c790" +ENV FRIENDICA_VERSION "2021.09" +ENV FRIENDICA_ADDONS "2021.09" +ENV FRIENDICA_DOWNLOAD_SHA256 "8d44c7ee3cec161f9bc40032125636b13bfebaee37f59e9e5849d265f65a2d9e" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "b349cf54b5ca0bc93da3c023af639193b9df578d2ed47fccf12d3c581c178b45" RUN set -ex; \ fetchDeps=" \ diff --git a/2021.04/fpm/config/00apcu.config.php b/2021.09/fpm/config/00apcu.config.php similarity index 100% rename from 2021.04/fpm/config/00apcu.config.php rename to 2021.09/fpm/config/00apcu.config.php diff --git a/2021.04/fpm/config/01redis.config.php b/2021.09/fpm/config/01redis.config.php similarity index 100% rename from 2021.04/fpm/config/01redis.config.php rename to 2021.09/fpm/config/01redis.config.php diff --git a/2021.04/fpm/config/zz-docker.config.php b/2021.09/fpm/config/zz-docker.config.php similarity index 100% rename from 2021.04/fpm/config/zz-docker.config.php rename to 2021.09/fpm/config/zz-docker.config.php diff --git a/2021.04/fpm/cron.sh b/2021.09/fpm/cron.sh similarity index 100% rename from 2021.04/fpm/cron.sh rename to 2021.09/fpm/cron.sh diff --git a/2021.04/fpm/entrypoint.sh b/2021.09/fpm/entrypoint.sh similarity index 100% rename from 2021.04/fpm/entrypoint.sh rename to 2021.09/fpm/entrypoint.sh diff --git a/2021.04/fpm/setup_msmtp.sh b/2021.09/fpm/setup_msmtp.sh similarity index 100% rename from 2021.04/fpm/setup_msmtp.sh rename to 2021.09/fpm/setup_msmtp.sh diff --git a/2021.04/fpm/upgrade.exclude b/2021.09/fpm/upgrade.exclude similarity index 100% rename from 2021.04/fpm/upgrade.exclude rename to 2021.09/fpm/upgrade.exclude diff --git a/2021.09-rc/apache/Dockerfile b/2021.12-dev/apache/Dockerfile similarity index 98% rename from 2021.09-rc/apache/Dockerfile rename to 2021.12-dev/apache/Dockerfile index e44adfe..bd084b4 100644 --- a/2021.09-rc/apache/Dockerfile +++ b/2021.12-dev/apache/Dockerfile @@ -123,8 +123,8 @@ RUN set -ex;\ } > /etc/apache2/conf-available/remoteip.conf;\ a2enconf remoteip -ENV FRIENDICA_VERSION "2021.09-rc" -ENV FRIENDICA_ADDONS "2021.09-rc" +ENV FRIENDICA_VERSION "2021.12-dev" +ENV FRIENDICA_ADDONS "2021.12-dev" RUN set -ex; \ fetchDeps=" \ diff --git a/2021.07/apache/config/00apcu.config.php b/2021.12-dev/apache/config/00apcu.config.php similarity index 100% rename from 2021.07/apache/config/00apcu.config.php rename to 2021.12-dev/apache/config/00apcu.config.php diff --git a/2021.07/apache/config/01redis.config.php b/2021.12-dev/apache/config/01redis.config.php similarity index 100% rename from 2021.07/apache/config/01redis.config.php rename to 2021.12-dev/apache/config/01redis.config.php diff --git a/2021.07/apache/config/zz-docker.config.php b/2021.12-dev/apache/config/zz-docker.config.php similarity index 100% rename from 2021.07/apache/config/zz-docker.config.php rename to 2021.12-dev/apache/config/zz-docker.config.php diff --git a/2021.07/apache/cron.sh b/2021.12-dev/apache/cron.sh similarity index 100% rename from 2021.07/apache/cron.sh rename to 2021.12-dev/apache/cron.sh diff --git a/2021.09-dev/apache/entrypoint-dev.sh b/2021.12-dev/apache/entrypoint-dev.sh similarity index 100% rename from 2021.09-dev/apache/entrypoint-dev.sh rename to 2021.12-dev/apache/entrypoint-dev.sh diff --git a/2021.07/apache/entrypoint.sh b/2021.12-dev/apache/entrypoint.sh similarity index 100% rename from 2021.07/apache/entrypoint.sh rename to 2021.12-dev/apache/entrypoint.sh diff --git a/2021.07/apache/setup_msmtp.sh b/2021.12-dev/apache/setup_msmtp.sh similarity index 100% rename from 2021.07/apache/setup_msmtp.sh rename to 2021.12-dev/apache/setup_msmtp.sh diff --git a/2021.07/apache/upgrade.exclude b/2021.12-dev/apache/upgrade.exclude similarity index 100% rename from 2021.07/apache/upgrade.exclude rename to 2021.12-dev/apache/upgrade.exclude diff --git a/2021.09-rc/fpm-alpine/Dockerfile b/2021.12-dev/fpm-alpine/Dockerfile similarity index 98% rename from 2021.09-rc/fpm-alpine/Dockerfile rename to 2021.12-dev/fpm-alpine/Dockerfile index 9314282..35bf3a1 100644 --- a/2021.09-rc/fpm-alpine/Dockerfile +++ b/2021.12-dev/fpm-alpine/Dockerfile @@ -125,8 +125,8 @@ RUN set -ex; \ VOLUME /var/www/html -ENV FRIENDICA_VERSION "2021.09-rc" -ENV FRIENDICA_ADDONS "2021.09-rc" +ENV FRIENDICA_VERSION "2021.12-dev" +ENV FRIENDICA_ADDONS "2021.12-dev" RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ diff --git a/2021.07/fpm-alpine/config/00apcu.config.php b/2021.12-dev/fpm-alpine/config/00apcu.config.php similarity index 100% rename from 2021.07/fpm-alpine/config/00apcu.config.php rename to 2021.12-dev/fpm-alpine/config/00apcu.config.php diff --git a/2021.07/fpm-alpine/config/01redis.config.php b/2021.12-dev/fpm-alpine/config/01redis.config.php similarity index 100% rename from 2021.07/fpm-alpine/config/01redis.config.php rename to 2021.12-dev/fpm-alpine/config/01redis.config.php diff --git a/2021.07/fpm-alpine/config/zz-docker.config.php b/2021.12-dev/fpm-alpine/config/zz-docker.config.php similarity index 100% rename from 2021.07/fpm-alpine/config/zz-docker.config.php rename to 2021.12-dev/fpm-alpine/config/zz-docker.config.php diff --git a/2021.07/fpm-alpine/cron.sh b/2021.12-dev/fpm-alpine/cron.sh similarity index 100% rename from 2021.07/fpm-alpine/cron.sh rename to 2021.12-dev/fpm-alpine/cron.sh diff --git a/2021.09-dev/fpm-alpine/entrypoint-dev.sh b/2021.12-dev/fpm-alpine/entrypoint-dev.sh similarity index 100% rename from 2021.09-dev/fpm-alpine/entrypoint-dev.sh rename to 2021.12-dev/fpm-alpine/entrypoint-dev.sh diff --git a/2021.07/fpm-alpine/entrypoint.sh b/2021.12-dev/fpm-alpine/entrypoint.sh similarity index 100% rename from 2021.07/fpm-alpine/entrypoint.sh rename to 2021.12-dev/fpm-alpine/entrypoint.sh diff --git a/2021.07/fpm-alpine/setup_msmtp.sh b/2021.12-dev/fpm-alpine/setup_msmtp.sh similarity index 100% rename from 2021.07/fpm-alpine/setup_msmtp.sh rename to 2021.12-dev/fpm-alpine/setup_msmtp.sh diff --git a/2021.07/fpm-alpine/upgrade.exclude b/2021.12-dev/fpm-alpine/upgrade.exclude similarity index 100% rename from 2021.07/fpm-alpine/upgrade.exclude rename to 2021.12-dev/fpm-alpine/upgrade.exclude diff --git a/2021.09-rc/fpm/Dockerfile b/2021.12-dev/fpm/Dockerfile similarity index 97% rename from 2021.09-rc/fpm/Dockerfile rename to 2021.12-dev/fpm/Dockerfile index d5c5519..7fa2145 100644 --- a/2021.09-rc/fpm/Dockerfile +++ b/2021.12-dev/fpm/Dockerfile @@ -114,8 +114,8 @@ RUN set -ex; \ VOLUME /var/www/html -ENV FRIENDICA_VERSION "2021.09-rc" -ENV FRIENDICA_ADDONS "2021.09-rc" +ENV FRIENDICA_VERSION "2021.12-dev" +ENV FRIENDICA_ADDONS "2021.12-dev" RUN set -ex; \ fetchDeps=" \ diff --git a/2021.07/fpm/config/00apcu.config.php b/2021.12-dev/fpm/config/00apcu.config.php similarity index 100% rename from 2021.07/fpm/config/00apcu.config.php rename to 2021.12-dev/fpm/config/00apcu.config.php diff --git a/2021.07/fpm/config/01redis.config.php b/2021.12-dev/fpm/config/01redis.config.php similarity index 100% rename from 2021.07/fpm/config/01redis.config.php rename to 2021.12-dev/fpm/config/01redis.config.php diff --git a/2021.07/fpm/config/zz-docker.config.php b/2021.12-dev/fpm/config/zz-docker.config.php similarity index 100% rename from 2021.07/fpm/config/zz-docker.config.php rename to 2021.12-dev/fpm/config/zz-docker.config.php diff --git a/2021.07/fpm/cron.sh b/2021.12-dev/fpm/cron.sh similarity index 100% rename from 2021.07/fpm/cron.sh rename to 2021.12-dev/fpm/cron.sh diff --git a/2021.09-dev/fpm/entrypoint-dev.sh b/2021.12-dev/fpm/entrypoint-dev.sh similarity index 100% rename from 2021.09-dev/fpm/entrypoint-dev.sh rename to 2021.12-dev/fpm/entrypoint-dev.sh diff --git a/2021.07/fpm/entrypoint.sh b/2021.12-dev/fpm/entrypoint.sh similarity index 100% rename from 2021.07/fpm/entrypoint.sh rename to 2021.12-dev/fpm/entrypoint.sh diff --git a/2021.07/fpm/setup_msmtp.sh b/2021.12-dev/fpm/setup_msmtp.sh similarity index 100% rename from 2021.07/fpm/setup_msmtp.sh rename to 2021.12-dev/fpm/setup_msmtp.sh diff --git a/2021.07/fpm/upgrade.exclude b/2021.12-dev/fpm/upgrade.exclude similarity index 100% rename from 2021.07/fpm/upgrade.exclude rename to 2021.12-dev/fpm/upgrade.exclude diff --git a/develop.txt b/develop.txt index da1db37..9fb7221 100644 --- a/develop.txt +++ b/develop.txt @@ -1 +1 @@ -2021.09-dev +2021.12-dev diff --git a/latest.txt b/latest.txt index 9eb200c..76c052b 100644 --- a/latest.txt +++ b/latest.txt @@ -1 +1 @@ -2021.07 +2021.09 From 7881472f579f506458f445ce1db3ce655eb91a5d Mon Sep 17 00:00:00 2001 From: GitHub Workflow Date: Tue, 28 Sep 2021 01:30:49 +0000 Subject: [PATCH 22/22] Runs update.sh --- 2021.09/apache/Dockerfile | 4 ++-- 2021.09/fpm-alpine/Dockerfile | 4 ++-- 2021.09/fpm/Dockerfile | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/2021.09/apache/Dockerfile b/2021.09/apache/Dockerfile index e33051b..c75cf18 100644 --- a/2021.09/apache/Dockerfile +++ b/2021.09/apache/Dockerfile @@ -125,8 +125,8 @@ RUN set -ex;\ ENV FRIENDICA_VERSION "2021.09" ENV FRIENDICA_ADDONS "2021.09" -ENV FRIENDICA_DOWNLOAD_SHA256 "8d44c7ee3cec161f9bc40032125636b13bfebaee37f59e9e5849d265f65a2d9e" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "b349cf54b5ca0bc93da3c023af639193b9df578d2ed47fccf12d3c581c178b45" +ENV FRIENDICA_DOWNLOAD_SHA256 "49cad34edf1b500b4623d0b92ba32265fe322aac9a3efb08fa234f600bfd817a" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "1910e732b3ca3fc35e57835f217746d6e1fbed1f76d8da1c989742ac2237090d" RUN set -ex; \ fetchDeps=" \ diff --git a/2021.09/fpm-alpine/Dockerfile b/2021.09/fpm-alpine/Dockerfile index 6cf67fe..8ddadd6 100644 --- a/2021.09/fpm-alpine/Dockerfile +++ b/2021.09/fpm-alpine/Dockerfile @@ -127,8 +127,8 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.09" ENV FRIENDICA_ADDONS "2021.09" -ENV FRIENDICA_DOWNLOAD_SHA256 "8d44c7ee3cec161f9bc40032125636b13bfebaee37f59e9e5849d265f65a2d9e" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "b349cf54b5ca0bc93da3c023af639193b9df578d2ed47fccf12d3c581c178b45" +ENV FRIENDICA_DOWNLOAD_SHA256 "49cad34edf1b500b4623d0b92ba32265fe322aac9a3efb08fa234f600bfd817a" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "1910e732b3ca3fc35e57835f217746d6e1fbed1f76d8da1c989742ac2237090d" RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ diff --git a/2021.09/fpm/Dockerfile b/2021.09/fpm/Dockerfile index 8584968..5d5cb1b 100644 --- a/2021.09/fpm/Dockerfile +++ b/2021.09/fpm/Dockerfile @@ -116,8 +116,8 @@ VOLUME /var/www/html ENV FRIENDICA_VERSION "2021.09" ENV FRIENDICA_ADDONS "2021.09" -ENV FRIENDICA_DOWNLOAD_SHA256 "8d44c7ee3cec161f9bc40032125636b13bfebaee37f59e9e5849d265f65a2d9e" -ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "b349cf54b5ca0bc93da3c023af639193b9df578d2ed47fccf12d3c581c178b45" +ENV FRIENDICA_DOWNLOAD_SHA256 "49cad34edf1b500b4623d0b92ba32265fe322aac9a3efb08fa234f600bfd817a" +ENV FRIENDICA_DOWNLOAD_ADDONS_SHA256 "1910e732b3ca3fc35e57835f217746d6e1fbed1f76d8da1c989742ac2237090d" RUN set -ex; \ fetchDeps=" \