From 7fe1de658d8e3fb2bb9c7bd8c76d7856a6f62745 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 15 Jun 2020 00:30:25 +0200 Subject: [PATCH] Fixing a lot of spaces & tabs! --- .editorconfig | 22 ++- 2020.03/apache/Dockerfile | 16 +- 2020.03/apache/cron.sh | 2 +- 2020.03/apache/entrypoint.sh | 210 +++++++++++------------ 2020.03/fpm-alpine/Dockerfile | 22 +-- 2020.03/fpm-alpine/cron.sh | 2 +- 2020.03/fpm-alpine/entrypoint.sh | 210 +++++++++++------------ 2020.03/fpm/Dockerfile | 16 +- 2020.03/fpm/cron.sh | 2 +- 2020.03/fpm/entrypoint.sh | 210 +++++++++++------------ 2020.06-dev/apache/Dockerfile | 16 +- 2020.06-dev/apache/cron.sh | 2 +- 2020.06-dev/apache/entrypoint-dev.sh | 86 +++++----- 2020.06-dev/apache/entrypoint.sh | 210 +++++++++++------------ 2020.06-dev/fpm-alpine/Dockerfile | 22 +-- 2020.06-dev/fpm-alpine/cron.sh | 2 +- 2020.06-dev/fpm-alpine/entrypoint-dev.sh | 86 +++++----- 2020.06-dev/fpm-alpine/entrypoint.sh | 210 +++++++++++------------ 2020.06-dev/fpm/Dockerfile | 16 +- 2020.06-dev/fpm/cron.sh | 2 +- 2020.06-dev/fpm/entrypoint-dev.sh | 86 +++++----- 2020.06-dev/fpm/entrypoint.sh | 210 +++++++++++------------ 2020.06-rc/apache/Dockerfile | 16 +- 2020.06-rc/apache/cron.sh | 2 +- 2020.06-rc/apache/entrypoint-dev.sh | 86 +++++----- 2020.06-rc/apache/entrypoint.sh | 210 +++++++++++------------ 2020.06-rc/fpm-alpine/Dockerfile | 22 +-- 2020.06-rc/fpm-alpine/cron.sh | 2 +- 2020.06-rc/fpm-alpine/entrypoint-dev.sh | 86 +++++----- 2020.06-rc/fpm-alpine/entrypoint.sh | 210 +++++++++++------------ 2020.06-rc/fpm/Dockerfile | 16 +- 2020.06-rc/fpm/cron.sh | 2 +- 2020.06-rc/fpm/entrypoint-dev.sh | 86 +++++----- 2020.06-rc/fpm/entrypoint.sh | 210 +++++++++++------------ Dockerfile-alpine.template | 22 +-- Dockerfile-debian.template | 16 +- docker-cron.sh | 2 +- docker-entrypoint-dev.sh | 86 +++++----- docker-entrypoint.sh | 210 +++++++++++------------ generate-stackbrew-library.sh | 143 +++++++-------- update.sh | 195 +++++++++++---------- 41 files changed, 1650 insertions(+), 1632 deletions(-) diff --git a/.editorconfig b/.editorconfig index ea90f8c..8fdcb42 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,5 +6,23 @@ root = true [*] charset = utf-8 end_of_line = lf -trim_trailing_whitespaces = true -indent_style = tab \ No newline at end of file +insert_final_newline = true + +[*.md] +indent_style = tab + +[*.sh] +indent_style = space +indent_size = 2 + +[*.yml] +indent_style = space +indent_size = 2 + +[*.template] +indent_style = space +indent_size = 4 + +[Dockerfile] +indent_style = space +indent_size = 4 diff --git a/2020.03/apache/Dockerfile b/2020.03/apache/Dockerfile index 765bf0a..8ae1176 100644 --- a/2020.03/apache/Dockerfile +++ b/2020.03/apache/Dockerfile @@ -56,8 +56,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -85,12 +85,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/2020.03/apache/cron.sh b/2020.03/apache/cron.sh index 55be04a..2850482 100755 --- a/2020.03/apache/cron.sh +++ b/2020.03/apache/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.03/apache/entrypoint.sh b/2020.03/apache/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.03/apache/entrypoint.sh +++ b/2020.03/apache/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.03/fpm-alpine/Dockerfile b/2020.03/fpm-alpine/Dockerfile index e65423a..7c17435 100644 --- a/2020.03/fpm-alpine/Dockerfile +++ b/2020.03/fpm-alpine/Dockerfile @@ -42,12 +42,12 @@ RUN set -ex; \ ; \ \ docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ ; \ \ # pecl will claim success even if one install fails, so we need to perform each install separately @@ -57,17 +57,17 @@ RUN set -ex; \ pecl install imagick-3.4.4; \ \ docker-php-ext-enable \ - apcu \ + 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 }' \ + 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; diff --git a/2020.03/fpm-alpine/cron.sh b/2020.03/fpm-alpine/cron.sh index 55be04a..2850482 100755 --- a/2020.03/fpm-alpine/cron.sh +++ b/2020.03/fpm-alpine/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.03/fpm-alpine/entrypoint.sh b/2020.03/fpm-alpine/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.03/fpm-alpine/entrypoint.sh +++ b/2020.03/fpm-alpine/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.03/fpm/Dockerfile b/2020.03/fpm/Dockerfile index 709f697..ce8d10e 100644 --- a/2020.03/fpm/Dockerfile +++ b/2020.03/fpm/Dockerfile @@ -56,8 +56,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -85,12 +85,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/2020.03/fpm/cron.sh b/2020.03/fpm/cron.sh index 55be04a..2850482 100755 --- a/2020.03/fpm/cron.sh +++ b/2020.03/fpm/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.03/fpm/entrypoint.sh b/2020.03/fpm/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.03/fpm/entrypoint.sh +++ b/2020.03/fpm/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.06-dev/apache/Dockerfile b/2020.06-dev/apache/Dockerfile index 66a2500..bb68a79 100644 --- a/2020.06-dev/apache/Dockerfile +++ b/2020.06-dev/apache/Dockerfile @@ -56,8 +56,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -85,12 +85,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/2020.06-dev/apache/cron.sh b/2020.06-dev/apache/cron.sh index 55be04a..2850482 100755 --- a/2020.06-dev/apache/cron.sh +++ b/2020.06-dev/apache/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.06-dev/apache/entrypoint-dev.sh b/2020.06-dev/apache/entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/2020.06-dev/apache/entrypoint-dev.sh +++ b/2020.06-dev/apache/entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/2020.06-dev/apache/entrypoint.sh b/2020.06-dev/apache/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.06-dev/apache/entrypoint.sh +++ b/2020.06-dev/apache/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.06-dev/fpm-alpine/Dockerfile b/2020.06-dev/fpm-alpine/Dockerfile index a9f4450..6b4c92a 100644 --- a/2020.06-dev/fpm-alpine/Dockerfile +++ b/2020.06-dev/fpm-alpine/Dockerfile @@ -42,12 +42,12 @@ RUN set -ex; \ ; \ \ docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ ; \ \ # pecl will claim success even if one install fails, so we need to perform each install separately @@ -57,17 +57,17 @@ RUN set -ex; \ pecl install imagick-3.4.4; \ \ docker-php-ext-enable \ - apcu \ + 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 }' \ + 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; diff --git a/2020.06-dev/fpm-alpine/cron.sh b/2020.06-dev/fpm-alpine/cron.sh index 55be04a..2850482 100755 --- a/2020.06-dev/fpm-alpine/cron.sh +++ b/2020.06-dev/fpm-alpine/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.06-dev/fpm-alpine/entrypoint-dev.sh b/2020.06-dev/fpm-alpine/entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/2020.06-dev/fpm-alpine/entrypoint-dev.sh +++ b/2020.06-dev/fpm-alpine/entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/2020.06-dev/fpm-alpine/entrypoint.sh b/2020.06-dev/fpm-alpine/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.06-dev/fpm-alpine/entrypoint.sh +++ b/2020.06-dev/fpm-alpine/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.06-dev/fpm/Dockerfile b/2020.06-dev/fpm/Dockerfile index e6e91db..45ef9c2 100644 --- a/2020.06-dev/fpm/Dockerfile +++ b/2020.06-dev/fpm/Dockerfile @@ -56,8 +56,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -85,12 +85,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/2020.06-dev/fpm/cron.sh b/2020.06-dev/fpm/cron.sh index 55be04a..2850482 100755 --- a/2020.06-dev/fpm/cron.sh +++ b/2020.06-dev/fpm/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.06-dev/fpm/entrypoint-dev.sh b/2020.06-dev/fpm/entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/2020.06-dev/fpm/entrypoint-dev.sh +++ b/2020.06-dev/fpm/entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/2020.06-dev/fpm/entrypoint.sh b/2020.06-dev/fpm/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.06-dev/fpm/entrypoint.sh +++ b/2020.06-dev/fpm/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.06-rc/apache/Dockerfile b/2020.06-rc/apache/Dockerfile index 2166e88..de63aec 100644 --- a/2020.06-rc/apache/Dockerfile +++ b/2020.06-rc/apache/Dockerfile @@ -56,8 +56,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -85,12 +85,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/2020.06-rc/apache/cron.sh b/2020.06-rc/apache/cron.sh index 55be04a..2850482 100755 --- a/2020.06-rc/apache/cron.sh +++ b/2020.06-rc/apache/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.06-rc/apache/entrypoint-dev.sh b/2020.06-rc/apache/entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/2020.06-rc/apache/entrypoint-dev.sh +++ b/2020.06-rc/apache/entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/2020.06-rc/apache/entrypoint.sh b/2020.06-rc/apache/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.06-rc/apache/entrypoint.sh +++ b/2020.06-rc/apache/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.06-rc/fpm-alpine/Dockerfile b/2020.06-rc/fpm-alpine/Dockerfile index ebeb993..bf7d53e 100644 --- a/2020.06-rc/fpm-alpine/Dockerfile +++ b/2020.06-rc/fpm-alpine/Dockerfile @@ -42,12 +42,12 @@ RUN set -ex; \ ; \ \ docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ ; \ \ # pecl will claim success even if one install fails, so we need to perform each install separately @@ -57,17 +57,17 @@ RUN set -ex; \ pecl install imagick-3.4.4; \ \ docker-php-ext-enable \ - apcu \ + 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 }' \ + 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; diff --git a/2020.06-rc/fpm-alpine/cron.sh b/2020.06-rc/fpm-alpine/cron.sh index 55be04a..2850482 100755 --- a/2020.06-rc/fpm-alpine/cron.sh +++ b/2020.06-rc/fpm-alpine/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.06-rc/fpm-alpine/entrypoint-dev.sh b/2020.06-rc/fpm-alpine/entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/2020.06-rc/fpm-alpine/entrypoint-dev.sh +++ b/2020.06-rc/fpm-alpine/entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/2020.06-rc/fpm-alpine/entrypoint.sh b/2020.06-rc/fpm-alpine/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.06-rc/fpm-alpine/entrypoint.sh +++ b/2020.06-rc/fpm-alpine/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/2020.06-rc/fpm/Dockerfile b/2020.06-rc/fpm/Dockerfile index ff04dc9..c4fc7b8 100644 --- a/2020.06-rc/fpm/Dockerfile +++ b/2020.06-rc/fpm/Dockerfile @@ -56,8 +56,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -85,12 +85,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/2020.06-rc/fpm/cron.sh b/2020.06-rc/fpm/cron.sh index 55be04a..2850482 100755 --- a/2020.06-rc/fpm/cron.sh +++ b/2020.06-rc/fpm/cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/2020.06-rc/fpm/entrypoint-dev.sh b/2020.06-rc/fpm/entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/2020.06-rc/fpm/entrypoint-dev.sh +++ b/2020.06-rc/fpm/entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/2020.06-rc/fpm/entrypoint.sh b/2020.06-rc/fpm/entrypoint.sh index 8c4d850..40303f9 100755 --- a/2020.06-rc/fpm/entrypoint.sh +++ b/2020.06-rc/fpm/entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index af0552b..0b97bfd 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -41,12 +41,12 @@ RUN set -ex; \ ; \ \ docker-php-ext-install -j "$(nproc)" \ - pdo_mysql \ - gd \ - zip \ - opcache \ - pcntl \ - ldap \ + pdo_mysql \ + gd \ + zip \ + opcache \ + pcntl \ + ldap \ ; \ \ # pecl will claim success even if one install fails, so we need to perform each install separately @@ -56,17 +56,17 @@ RUN set -ex; \ pecl install imagick-%%IMAGICK_VERSION%%; \ \ docker-php-ext-enable \ - apcu \ + 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 }' \ + 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; diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 26622dd..1410bb3 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -55,8 +55,8 @@ RUN set -ex; \ --with-jpeg-dir=/usr/include/ \ ; \ docker-php-ext-configure ldap \ - --with-libdir=lib/$debMultiarch/ \ - ; \ + --with-libdir=lib/$debMultiarch/ \ + ;\ docker-php-ext-install -j "$(nproc)" \ pdo_mysql \ gd \ @@ -84,12 +84,12 @@ RUN set -ex; \ 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; \ + | 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/* diff --git a/docker-cron.sh b/docker-cron.sh index 55be04a..2850482 100755 --- a/docker-cron.sh +++ b/docker-cron.sh @@ -2,7 +2,7 @@ trap "break;exit" HUP INT TERM while [ ! -f /var/www/html/bin/daemon.php ]; do - sleep 1 + sleep 1 done echo "Waiting for MySQL $MYSQL_HOST initialization..." diff --git a/docker-entrypoint-dev.sh b/docker-entrypoint-dev.sh index 55afb80..08c3c13 100755 --- a/docker-entrypoint-dev.sh +++ b/docker-entrypoint-dev.sh @@ -3,67 +3,67 @@ 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" ] + 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}" + 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 "{$friendica_git,,}" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi - if echo "{$addons_git,,}" | grep -Eq '^.*\-dev'; then - addons_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}' ..." + # 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 + # 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 + mkdir /usr/src/friendica/addon + git clone -q -b ${addons_git} "https://github.com/${friendica_addons_repo}" /usr/src/friendica/addon - echo "Download finished" + echo "Download finished" - if [ ! -f /usr/src/friendica/VERSION ]; then - echo "Couldn't clone repository" - exit 1 - fi + 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 + /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 + 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 + 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 Candidats - 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 + # 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/docker-entrypoint.sh b/docker-entrypoint.sh index 8c4d850..40303f9 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -3,147 +3,147 @@ 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 + 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' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] + [ "$(printf '%s\n' "$@" | sort -r -t '-' -k2,2 | sort -t '.' -n -k1,1 -k2,2 -s | head -n 1)" != "$1" ] } setup_ssmtp() { - if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then - SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" - echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." + if [ -n "${SMTP_DOMAIN+x}" ] && [ -n "${SMTP+x}" ] && [ "${SMTP}" != "localhost" ]; then + SITENAME="${FRIENDICA_SITENAME:-Friendica Social Network}" + echo "Setup SSMTP for '$SITENAME' with '$SMTP' ..." - smtp_from=${SMTP_FROM:-no-reply} + smtp_from=${SMTP_FROM:-no-reply} - # Setup SSMTP - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" root - usermod --comment "$(echo "$SITENAME" | tr -dc '[:print:]')" www-data + # Setup SSMTP + 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:$SMTP" - echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" - } > /etc/ssmtp/revaliases + # add possible mail-senders + { + echo "www-data:$smtp_from@$SMTP_DOMAIN:$SMTP" + echo "root::$smtp_from@$SMTP_DOMAIN:$SMTP" + } > /etc/ssmtp/revaliases - # replace ssmtp.conf settings - { - echo "root=:$smtp_from@$SMTP_DOMAIN" - echo "hostname=$SMTP_DOMAIN" - echo "mailhub=$SMTP" - echo "FromLineOverride=YES" - if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi - if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi - if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi - if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi - if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi - } > /etc/ssmtp/ssmtp.conf + # replace ssmtp.conf settings + { + echo "root=:$smtp_from@$SMTP_DOMAIN" + echo "hostname=$SMTP_DOMAIN" + echo "mailhub=$SMTP" + echo "FromLineOverride=YES" + if [ -n "${SMTP_TLS+x}" ]; then echo "UseTLS=$SMTP_TLS"; fi + if [ -n "${SMTP_STARTTLS+x}" ]; then echo "UseSTARTTLS=$SMTP_STARTTLS"; fi + if [ -n "${SMTP_AUTH_USER+x}" ]; then echo "AuthUser=$SMTP_AUTH_USER"; fi + if [ -n "${SMTP_AUTH_PASS+x}" ]; then echo "AuthPass=$SMTP_AUTH_PASS";fi + if [ -n "${SMTP_AUTH_METHOD+x}" ]; then echo "AuthMethod=$SMTP_AUTH_METHOD"; fi + } > /etc/ssmtp/ssmtp.conf - echo "Setup finished" - fi + echo "Setup finished" + fi } # 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 + 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)" + 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 + # 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 - setup_ssmtp + setup_ssmtp - # 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 ..." + # 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 [ "$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 + 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/ + 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/ + # 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 + # 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" + 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" + # install + if [ "$installed_version" = "0.0.0.0" ]; then + echo "New Friendica instance" - 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" + 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} + 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='-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 + # 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 + 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" + echo "Starting Friendica installation ..." + run_as "php /var/www/html/bin/console.php autoinstall $install_options" - rm -fr /var/www/html/view/smarty3/compiled + 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 + # 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' - echo "Upgrading finished" - fi - 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' + echo "Upgrading finished" + fi + fi fi exec "$@" diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 113c55c..e3b69b2 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -2,53 +2,53 @@ set -Eeuo pipefail declare -A release_channel=( - [stable]='2020.03' - [latest]='2020.03' + [stable]='2020.03' + [latest]='2020.03' ) -self="$(basename "$BASH_SOURCE")" -cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" +self="$(basename "${BASH_SOURCE[0]}")" +cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" # Get the most recent commit which modified any of "$@". fileCommit() { - commit="$(git log -1 --format='format:%H' HEAD -- "$@")" - if [ -z "$commit" ]; then - # return some valid sha1 hash to make bashbrew happy - echo '0000000000000000000000000000000000000000' - else - echo "$commit" - fi + commit="$(git log -1 --format='format:%H' HEAD -- "$@")" + if [ -z "$commit" ]; then + # return some valid sha1 hash to make bashbrew happy + echo '0000000000000000000000000000000000000000' + else + echo "$commit" + fi } # Get the most recent commit which modified "$1/Dockerfile" or any file that # the Dockerfile copies into the rootfs (with COPY). dockerfileCommit() { - local dir="$1"; shift - ( - cd "$dir"; - fileCommit Dockerfile \ - $(awk ' - toupper($1) == "COPY" { - for (i = 2; i < NF; i++) - print $i; - } - ' Dockerfile) - ) + local dir="$1"; shift + ( + cd "$dir"; + fileCommit Dockerfile \ + "$(awk ' + toupper($1) == "COPY" { + for (i = 2; i < NF; i++) + print $i; + } + ' Dockerfile)" + ) } getArches() { - local repo="$1"; shift - local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/' + local repo="$1"; shift + local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/' - eval "declare -g -A parentRepoToArches=( $( - find -maxdepth 3 -name 'Dockerfile' -exec awk ' - toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|microsoft\/[^:]+)(:|$)/ { - print "'"$officialImagesUrl"'" $2 - } - ' '{}' + \ - | sort -u \ - | xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"' - ) )" + eval "declare -g -A parentRepoToArches=( $( + find -maxdepth 3 -name 'Dockerfile' -exec awk ' + toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|microsoft\/[^:]+)(:|$)/ { + print "'"$officialImagesUrl"'" $2 + } + ' '{}' + \ + | sort -u \ + | xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"' + ) )" } getArches 'friendica' @@ -62,55 +62,56 @@ EOH # prints "$2$1$3$1...$N" join() { - local sep="$1"; shift - local out; printf -v out "${sep//%/%%}%s" "$@" - echo "${out#$sep}" + local sep="$1"; shift + local out; printf -v out "${sep//%/%%}%s" "$@" + echo "${out#$sep}" } # Generate each of the tags. versions=( */ ) versions=( "${versions[@]%/}" ) for version in "${versions[@]}"; do - variants=( $version/*/ ) - variants=( $(for variant in "${variants[@]%/}"; do - echo "$(basename "$variant")" - done) ) - for variant in "${variants[@]}"; do - commit="$(dockerfileCommit "$version/$variant")" + variants=( $version/*/ ) + variants=( $(for variant in "${variants[@]%/}"; do + basename "$variant" + done) ) + for variant in "${variants[@]}"; do + commit="$(dockerfileCommit "$version/$variant")" - versionAliases=( ) - versionPostfix="" + versionAliases=( ) + versionPostfix="" - versionAliases+=( "$version$versionPostfix" ) - if [ "$version" == *-rc ]; then - versionAliases+=( "rc" ) - fi - if [ "$version" == *-dev ]; then - versionAliases+=( "dev" ) - fi + versionAliases+=( "$version$versionPostfix" ) + if [[ "$version" == *-rc ]]; then + versionAliases+=( "rc" ) + fi + if [[ "$version" == *-dev ]]; then + versionAliases+=( "dev" ) + fi - for channel in "${!release_channel[@]}"; do - if [ "$version" = "${release_channel[$channel]}" ]; then - versionAliases+=( "$channel" ) - fi - done + for channel in "${!release_channel[@]}"; do + if [ "$version" = "${release_channel[$channel]}" ]; then + versionAliases+=( "$channel" ) + fi + done - variantAliases=( "${versionAliases[@]/%/-$variant}" ) - variantAliases=( "${variantAliases[@]//latest-}" ) + variantAliases=( "${versionAliases[@]/%/-$variant}" ) + variantAliases=( "${variantAliases[@]//latest-}" ) - if [ "$variant" = "apache" ]; then - variantAliases+=( "${versionAliases[@]}" ) - fi + if [ "$variant" = "apache" ]; then + variantAliases+=( "${versionAliases[@]}" ) + fi - variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/$variant/Dockerfile")" - variantArches="${parentRepoToArches[$variantParent]}" + variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/$variant/Dockerfile")" + # shellcheck disable=SC2154 + variantArches="${parentRepoToArches[$variantParent]}" - cat <<-EOE + cat << EOE - Tags: $(join ', ' "${variantAliases[@]}") - Architectures: $(join ', ' $variantArches) - GitCommit: $commit - Directory: $version/$variant - EOE - done -done \ No newline at end of file +Tags: $(join ', ' "${variantAliases[@]}") +Architectures: $(join ', ' "$variantArches") +GitCommit: $commit +Directory: $version/$variant +EOE + done +done diff --git a/update.sh b/update.sh index dc4ee8f..a2aad12 100755 --- a/update.sh +++ b/update.sh @@ -2,25 +2,25 @@ set -eo pipefail declare -A php_version=( - [default]='7.3' + [default]='7.3' ) declare -A cmd=( - [apache]='apache2-foreground' - [fpm]='php-fpm' - [fpm-alpine]='php-fpm' + [apache]='apache2-foreground' + [fpm]='php-fpm' + [fpm-alpine]='php-fpm' ) declare -A base=( - [apache]='debian' - [fpm]='debian' - [fpm-alpine]='alpine' + [apache]='debian' + [fpm]='debian' + [fpm-alpine]='alpine' ) declare -A extras=( - [apache]='\nRUN set -ex;\\\n a2enmod rewrite remoteip ;\\\n {\\\n echo RemoteIPHeader X-Real-IP ;\\\n echo RemoteIPTrustedProxy 10.0.0.0/8 ;\\\n echo RemoteIPTrustedProxy 172.16.0.0/12 ;\\\n echo RemoteIPTrustedProxy 192.168.0.0/16 ;\\\n } > /etc/apache2/conf-available/remoteip.conf;\\\n a2enconf remoteip' - [fpm]='' - [fpm-alpine]='' + [apache]='\nRUN set -ex;\\\n a2enmod rewrite remoteip ;\\\n {\\\n echo RemoteIPHeader X-Real-IP ;\\\n echo RemoteIPTrustedProxy 10.0.0.0/8 ;\\\n echo RemoteIPTrustedProxy 172.16.0.0/12 ;\\\n echo RemoteIPTrustedProxy 192.168.0.0/16 ;\\\n } > /etc/apache2/conf-available/remoteip.conf;\\\n a2enconf remoteip' + [fpm]='' + [fpm-alpine]='' ) declare -A entrypoints=( @@ -30,143 +30,142 @@ declare -A entrypoints=( # Only for debian variant tini_version="$( - git ls-remote --tags https://github.com/krallin/tini.git \ - | cut -d/ -f3 \ - | grep -vE -- '.pre' \ - | sed -E 's/^v//' \ - | sort -V \ - | tail -1 + git ls-remote --tags https://github.com/krallin/tini.git \ + | cut -d/ -f3 \ + | grep -vE -- '.pre' \ + | sed -E 's/^v//' \ + | sort -V \ + | tail -1 )" apcu_version="$( - git ls-remote --tags https://github.com/krakjoe/apcu.git \ - | cut -d/ -f3 \ - | grep -vE -- '-rc|-b' \ - | sed -E 's/^v//' \ - | sort -V \ - | tail -1 + git ls-remote --tags https://github.com/krakjoe/apcu.git \ + | cut -d/ -f3 \ + | grep -vE -- '-rc|-b' \ + | sed -E 's/^v//' \ + | sort -V \ + | tail -1 )" memcached_version="$( - git ls-remote --tags https://github.com/php-memcached-dev/php-memcached.git \ - | cut -d/ -f3 \ - | grep -vE -- '-rc|-b' \ - | sed -E 's/^[rv]//' \ - | sort -V \ - | tail -1 + git ls-remote --tags https://github.com/php-memcached-dev/php-memcached.git \ + | cut -d/ -f3 \ + | grep -vE -- '-rc|-b' \ + | sed -E 's/^[rv]//' \ + | sort -V \ + | tail -1 )" redis_version="$( - git ls-remote --tags https://github.com/phpredis/phpredis.git \ - | cut -d/ -f3 \ - | grep -viE '[a-z]' \ - | tr -d '^{}' \ - | sort -V \ - | tail -1 + git ls-remote --tags https://github.com/phpredis/phpredis.git \ + | cut -d/ -f3 \ + | grep -viE '[a-z]' \ + | tr -d '^{}' \ + | sort -V \ + | tail -1 )" imagick_version="$( - git ls-remote --tags https://github.com/mkoppanen/imagick.git \ - | cut -d/ -f3 \ - | grep -viE '[a-z]' \ - | tr -d '^{}' \ - | sort -V \ - | tail -1 + git ls-remote --tags https://github.com/mkoppanen/imagick.git \ + | cut -d/ -f3 \ + | grep -viE '[a-z]' \ + | tr -d '^{}' \ + | sort -V \ + | tail -1 )" declare -A pecl_versions=( - [APCu]="$apcu_version" - [memcached]="$memcached_version" - [redis]="$redis_version" - [imagick]="$imagick_version" + [APCu]="$apcu_version" + [memcached]="$memcached_version" + [redis]="$redis_version" + [imagick]="$imagick_version" ) declare -A install_extras=( - ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica.tar.gz \\\n "https://friendi.ca/wp-content/uploads/${FRIENDICA_VERSION_YEAR}/${FRIENDICA_VERSION_MONTH}/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://github.com/friendica/friendica-addons/archive/${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;' - ['develop']='' + ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica.tar.gz \\\n "https://friendi.ca/wp-content/uploads/${FRIENDICA_VERSION_YEAR}/${FRIENDICA_VERSION_MONTH}/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://github.com/friendica/friendica-addons/archive/${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;' + ['develop']='' ) variants=( - apache - fpm - fpm-alpine + apache + fpm + fpm-alpine ) versions=( - 2020.03 - 2020.06-dev - 2020.06-rc + 2020.03 + 2020.06-dev + 2020.06-rc ) travisEnv= travisEnvAmd64= function create_variant() { - dockerName=${1,,} - dir="$dockerName/$variant" + dockerName=${1,,} + dir="$dockerName/$variant" - # Create the version+variant directory with a Dockerfile. - mkdir -p "$dir" + # Create the version+variant directory with a Dockerfile. + mkdir -p "$dir" - template="Dockerfile-${base[$variant]}.template" - echo "# DO NOT EDIT: created by update.sh from $template" > "$dir/Dockerfile" - cat "$template" >> "$dir/Dockerfile" + template="Dockerfile-${base[$variant]}.template" + echo "# DO NOT EDIT: created by update.sh from $template" > "$dir/Dockerfile" + cat "$template" >> "$dir/Dockerfile" - # Check which installation typ we need. If develop, the source will get downloaded by git. - install_type='stable' - if [[ "${1,,}" == *-dev ]] || [[ "${1,,}" == *-rc ]]; then - install_type='develop' - fi + # Check which installation typ we need. If develop, the source will get downloaded by git. + install_type='stable' + if [[ "${1,,}" == *-dev ]] || [[ "${1,,}" == *-rc ]]; then + install_type='develop' + fi # Get Year / Month of the Version string VERSION_PARTS=(${1//./ }) - echo "updating $1 [$install_type] $variant" + echo "updating $1 [$install_type] $variant" - # Replace the variables. - sed -ri -e ' - s/%%PHP_VERSION%%/'"${php_version[$version]-${php_version[default]}}"'/g; - s/%%VARIANT%%/'"$variant"'/g; - s/%%VERSION%%/'"$1"'/g; - s/%%VERSION_YEAR%%/'"${VERSION_PARTS[0]}"'/g; - s/%%VERSION_MONTH%%/'"${VERSION_PARTS[1]}"'/g; - s/%%CMD%%/'"${cmd[$variant]}"'/g; - s|%%VARIANT_EXTRAS%%|'"${extras[$variant]}"'|g; - s|%%INSTALL_EXTRAS%%|'"${install_extras[$install_type]}"'|g; - s/%%APCU_VERSION%%/'"${pecl_versions[APCu]}"'/g; - s/%%IMAGICK_VERSION%%/'"${pecl_versions[imagick]}"'/g; - s/%%MEMCACHED_VERSION%%/'"${pecl_versions[memcached]}"'/g; - s/%%REDIS_VERSION%%/'"${pecl_versions[redis]}"'/g; - s/%%ENTRYPOINT%%/'"${entrypoints[$install_type]}"'/g; - s/%%TINI_VERSION%%/'"${tini_version}"'/g; - ' "$dir/Dockerfile" + # Replace the variables. + sed -ri -e ' + s/%%PHP_VERSION%%/'"${php_version[$version]-${php_version[default]}}"'/g; + s/%%VARIANT%%/'"$variant"'/g; + s/%%VERSION%%/'"$1"'/g; + s/%%VERSION_YEAR%%/'"${VERSION_PARTS[0]}"'/g; + s/%%VERSION_MONTH%%/'"${VERSION_PARTS[1]}"'/g; + s/%%CMD%%/'"${cmd[$variant]}"'/g; + s|%%VARIANT_EXTRAS%%|'"${extras[$variant]}"'|g; + s|%%INSTALL_EXTRAS%%|'"${install_extras[$install_type]}"'|g; + s/%%APCU_VERSION%%/'"${pecl_versions[APCu]}"'/g; + s/%%IMAGICK_VERSION%%/'"${pecl_versions[imagick]}"'/g; + s/%%MEMCACHED_VERSION%%/'"${pecl_versions[memcached]}"'/g; + s/%%REDIS_VERSION%%/'"${pecl_versions[redis]}"'/g; + s/%%ENTRYPOINT%%/'"${entrypoints[$install_type]}"'/g; + s/%%TINI_VERSION%%/'"${tini_version}"'/g; + ' "$dir/Dockerfile" - for name in entrypoint cron; do - cp "docker-$name.sh" "$dir/$name.sh" - done + for name in entrypoint cron; do + cp "docker-$name.sh" "$dir/$name.sh" + done - if [[ $install_type == "develop" ]]; then - cp "docker-entrypoint-dev.sh" "$dir/entrypoint-dev.sh" - fi + if [[ $install_type == "develop" ]]; then + cp "docker-entrypoint-dev.sh" "$dir/entrypoint-dev.sh" + fi - cp upgrade.exclude "$dir/" + cp upgrade.exclude "$dir/" - cp -rT .config "$dir/config" + cp -rT .config "$dir/config" - travisEnvAmd64='\n - env: VERSION='"$dockerName"' VARIANT='"$variant"' ARCH=amd64'"$travisEnvAmd64" - for arch in i386 amd64; do - travisEnv='\n - env: VERSION='"$dockerName"' VARIANT='"$variant"' ARCH='"$arch$travisEnv" - done + travisEnvAmd64='\n - env: VERSION='"$dockerName"' VARIANT='"$variant"' ARCH=amd64'"$travisEnvAmd64" + for arch in i386 amd64; do + travisEnv='\n - env: VERSION='"$dockerName"' VARIANT='"$variant"' ARCH='"$arch$travisEnv" + done } find . -maxdepth 1 -type d -regextype sed -regex '\./[[:digit:]]\+\(\.\|\-\)[[:digit:]]\+\(-rc\|-dev\)\?' -exec rm -r '{}' \; for version in "${versions[@]}"; do + for variant in "${variants[@]}"; do - for variant in "${variants[@]}"; do - - create_variant "$version" - done + create_variant "$version" + done done # replace the fist '-' with ' '