From 72451605c0b18d0dbf65a53520baad96927ff39d Mon Sep 17 00:00:00 2001 From: chamunks Date: Tue, 5 Jun 2018 12:27:51 -0400 Subject: [PATCH] Removed debug line --- www.spee.ch/Dockerfile | 3 +- www.spee.ch/docker-entrypoint.sh | 64 ++++++++++++++------------------ 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/www.spee.ch/Dockerfile b/www.spee.ch/Dockerfile index 96fd516..dbca4ba 100644 --- a/www.spee.ch/Dockerfile +++ b/www.spee.ch/Dockerfile @@ -15,8 +15,7 @@ RUN apk update && apk --no-cache add git curl wget python build-base && \ npm install ## Install container support files -RUN curl -s https://raw.githubusercontent.com/chamunks/docker-support/master/install | /bin/sh && \ - echo $PATH +RUN curl -s https://raw.githubusercontent.com/chamunks/docker-support/master/install | /bin/sh ADD ./docker-entrypoint.sh /bin/docker-entrypoint ADD ./healthcheck.sh /bin/healthcheck diff --git a/www.spee.ch/docker-entrypoint.sh b/www.spee.ch/docker-entrypoint.sh index 8fd86be..d29bf37 100755 --- a/www.spee.ch/docker-entrypoint.sh +++ b/www.spee.ch/docker-entrypoint.sh @@ -9,53 +9,45 @@ set -euxo pipefail if [[ -z "$@" ]]; then echof info "User did not attempt input. Now executing docker-entrypoint." else + echof info "Running $@." exec "$@" exit 1 fi -declare -a envvars=( - "$MYSQL_ENV_MYSQL_USER" - "$MYSQL_ENV_MYSQL_PASSWORD" - "$MYSQL_ENV_MYSQL_DATABASE" - "$MYSQL_ENV_MYSQL_ADDRESS" - "$GOOGLE_ANALYTICS_UID" - "$SITE_TITLE" - "$SITE_ADDRESS" - "$SITE_DESCRIPTION" -) +envvars=("$MYSQL_ENV_MYSQL_USER" "$MYSQL_ENV_MYSQL_PASSWORD" "$MYSQL_ENV_MYSQL_DATABASE" "$MYSQL_ENV_MYSQL_ADDRESS" "$GOOGLE_ANALYTICS_UID" "$SITE_TITLE" "$SITE_ADDRESS" "$SITE_DESCRIPTION") function set_conf() { case $1 in $MYSQL_ENV_MYSQL_USER ) - echof info "Setting '$MYSQL_ENV_MYSQL_USER' $1 in /app/config/mysqlConfig.json" + /bin/ash echof info "Setting '$MYSQL_ENV_MYSQL_USER' $1 in /app/config/mysqlConfig.json" sed -i 's/"username": "root"/"username": "'$MYSQL_ENV_MYSQL_USER'"/' /app/config/mysqlConfig.json ;; $MYSQL_ENV_MYSQL_PASSWORD ) ## This echo should be sanitized of any secrets before this is finished. - echof info "Setting '$MYSQL_ENV_MYSQL_PASSWORD' $1 in /app/config/mysqlConfig.json" + /bin/ash echof info "Setting '$MYSQL_ENV_MYSQL_PASSWORD' $1 in /app/config/mysqlConfig.json" sed -i 's/"password": ""/"password": "'$MYSQL_ENV_MYSQL_PASSWORD'"/' /app/config/mysqlConfig.json ;; $MYSQL_ENV_MYSQL_DATABASE ) - echof info "Setting '$MYSQL_ENV_MYSQL_DATABASE' $1 in /app/config/mysqlConfig.json" + /bin/ash echof info "Setting '$MYSQL_ENV_MYSQL_DATABASE' $1 in /app/config/mysqlConfig.json" sed -i 's/"database": "lbry"/"database": "'$MYSQL_ENV_MYSQL_DATABASE'"/' /app/config/mysqlConfig.json ;; $MYSQL_SERVER_ADDRESS ) - echof warn "This variable is not currently available." + /bin/ash echof warn "This variable is not currently available." ;; $SITE_ADDRESS ) - echof info "Setting '$SITE_ADDRESS' $1 in /app/config/siteConfig.json" + /bin/ash echof info "Setting '$SITE_ADDRESS' $1 in /app/config/siteConfig.json" sed -i 's/"host": "https://www.example.com"/"host": "https://'$SITE_ADDRESS'"/' /app/config/siteConfig.json ;; $GOOGLE_ANALYTICS_UID ) - echof info "Setting '$GOOGLE_ANALYTICS_UID' $1 in /app/config/siteConfig.json" + /bin/ash echof info "Setting '$GOOGLE_ANALYTICS_UID' $1 in /app/config/siteConfig.json" sed -i 's/"googleId": null/"googleId": '$GOOGLE_ANALYTICS_UID'/' /app/config/siteConfig.json ;; $SITE_TITLE ) - echof info "Setting '$SITE_TITLE' $1 in /app/config/siteConfig.json" + /bin/ash echof info "Setting '$SITE_TITLE' $1 in /app/config/siteConfig.json" sed -i 's/"title": "My Site"/"title": "'$SITE_TITLE'"/' /app/config/siteConfig.json ;; $SITE_DESCRIPTION ) - echof info "Setting '$SITE_DESCRIPTION' $1 in /app/config/siteConfig.json" + /bin/ash echof info "Setting '$SITE_DESCRIPTION' $1 in /app/config/siteConfig.json" sed -i 's/"description": "A decentralized hosting platform built on LBRY"/"Description": "'$SITE_DESCRIPTION'"/' /app/config/siteConfig.json ;; esac @@ -63,14 +55,14 @@ function set_conf() { function configure_speech() { # install configuration changes here. - echof info "Installing configuration files into /app/config/." + /bin/ash echof info "Installing configuration files into /app/config/." mkdir -p /app/config/ cp /usr/local/src/www.spee.ch/cli/defaults/mysqlConfig.json > /app/config/mysqlConfig.json cp /usr/local/src/www.spee.ch/cli/defaults/siteConfig.json > /app/config/siteConfig.json - echof info "Installing any environment variables that have been set." + /bin/ash echof info "Installing any environment variables that have been set." for i in "${envvars[@]}"; do if [[ -z "$i" ]]; then - echof info "$i was not set, moving on." + /bin/ash echof info "$i was not set, moving on." else set_conf $i fi @@ -79,12 +71,12 @@ function configure_speech() { function final_permset() { ## Finally reassert permissions in case there is user added drift. - rddo /app "test_for_dir" '775 "speech:speech"' - rfdo /app "test_for_file" '665 "speech:speech"' + rddo /app "/bin/ash test_for_dir" '775 "speech:speech"' + rfdo /app "/bin/ash test_for_file" '665 "speech:speech"' ## Define any permission exceptions here. - # test_for_dir /app/config 775 "speech:speech" - # test_for_file /app/config/siteConfig.json 665 "speech:speech" - echof info "Copied Spee.ch and set permissions" + # /bin/ash test_for_dir /app/config 775 "speech:speech" + # /bin/ash test_for_file /app/config/siteConfig.json 665 "speech:speech" + /bin/ash echof info "Copied Spee.ch and set permissions" } ################################### @@ -93,31 +85,31 @@ function final_permset() { # if Spee.ch is not yet installed, copy it into web root. # This could be updated to be part of an upgrade mechanism. if [ "$(ls -A /app)" ]; then - echof warn "/app is not Empty. It contains:" 1>&2 + /bin/ash echof warn "/app is not Empty. It contains:" 1>&2 ls -A 1>&2 ## If siteConfig.json isn't installed add it and configure or ignore and proceed. if [ ! -e '/app/config/siteConfig.json' ]; then - echof warn "Spee.ch doesn't appear to have a configuration." - echof blank "Don't worry we can install it for you." + /bin/ash echof warn "Spee.ch doesn't appear to have a configuration." + /bin/ash echof blank "Don't worry we can install it for you." configure_speech else ## If the file exists skip configuration and proceed. - echof info "Spee.ch config already installed skipping configuration step." + /bin/ash echof info "Spee.ch config already installed skipping configuration step." final_permset fi ## Install all other files after installing siteConfig.json - echof info "Making an attempt to nicely merge files using:" - echof run "mv -fnu /usr/local/src/www.spee.ch/* /app/" + /bin/ash echof info "Making an attempt to nicely merge files using:" + /bin/ash echof run "mv -fnu /usr/local/src/www.spee.ch/* /app/" mv -fnu /usr/local/src/www.spee.ch/* /app/ final_permset else - echof info "Speech wasn't installed, installing fresh copy now." + /bin/ash echof info "Speech wasn't installed, installing fresh copy now." configure_speech - echof run "mv /usr/local/src/www.spee.ch/* /app/" + /bin/ash echof run "mv /usr/local/src/www.spee.ch/* /app/" mv /usr/local/src/www.spee.ch/* /app/ final_permset fi ## Superfluous permissions assertion maybe axe this later. -echof run 'test_for_dir /app/config/siteConfig.json 775 "speech:speech"' -test_for_file /app/config/siteConfig.json 775 "speech:speech" +/bin/ash echof run '/bin/ash test_for_dir /app/config/siteConfig.json 775 "speech:speech"' +/bin/ash test_for_file /app/config/siteConfig.json 775 "speech:speech"