diff --git a/.sti/bin/assemble b/.sti/bin/assemble deleted file mode 100755 index a2f06e7..0000000 --- a/.sti/bin/assemble +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -# This script uses these environment variables: -# -# DISABLE_COLLECTSTATIC: if not empty, inhibits execution of 'manage.py collectstatic'. - -function assemble() { - # For SCL enablement - source .bashrc - - set -e - - echo "---> Copying application source ..." - cp -Rf /tmp/src/* ./ - - if [ -f setup.py ]; then - echo "---> Installing application ..." - python setup.py install --user - elif [ -f requirements.txt ]; then - echo "---> Installing dependencies ..." - pip install --user -r requirements.txt - fi - - # set permissions for any installed artifacts - chmod -R og+rwx /opt/openshift - - set +e - django_collectstatic - set -e - - # remove pip temporary directory - rm -rf /tmp/pip_build_default -} - -function django_collectstatic() { - [ -n "$DISABLE_COLLECTSTATIC" ] && return - ! pip show -q django && return - - # Find shallowest manage.py script, either ./manage.py or /manage.py - local MANAGE_FILE=$(find . -maxdepth 2 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1) - - if [ ! -f "$MANAGE_FILE" ]; then - echo "WARNING: seems that you're using Django, but we could not find a 'manage.py' file." - echo "'manage.py collectstatic' ignored." - return - fi - - echo "---> Collecting Django static files ..." - if ! python $MANAGE_FILE collectstatic --dry-run --noinput &> /dev/null; then - echo "WARNING: could not run 'manage.py collectstatic'. To debug, run:" - echo " $ python $MANAGE_FILE collectstatic --noinput" - echo "Ignore this warning if you're not serving static files with Django." - return - fi - - if ! python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d'; then - local status=$? - echo "ERROR: 'manage.py collectstatic' failed." - return $status - fi -} - -assemble diff --git a/.sti/bin/run b/.sti/bin/run deleted file mode 100755 index 960a3f0..0000000 --- a/.sti/bin/run +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash - -# This script uses these environment variables: -# -# APP_MODULE: Python dotted path to your WSGI application. -# If not provided, tries to find the Python path to a 'wsgi.py' file -# in the source tree. -# That file is present in Django projects by default. -# APP_CONFIG: Optional configuration file for gunicorn. -# APP_FILE: Optional path to Python script to run your application. -# Defaults to 'app.py' if it exists. -# -# DISABLE_MIGRATE: if not empty, inhibits execution of 'manage.py migrate'. - -BIND_ADDR="0.0.0.0:8080" - -function run() { - # For SCL enablement - source .bashrc - - set -e - - # Try to run application with the strategies below, in precedence order. - # The first successful strategy takes over this script's process via exec. - # If no strategy succeed, report an error message and terminate. - run_django - run_gunicorn "$APP_MODULE" - run_python_script "${APP_FILE:-app.py}" - - echo "ERROR: don't know how to run your application." - echo "Please set either APP_MODULE or APP_FILE environment variables," - echo "or create a file 'app.py' to launch your application." - return 1 -} - -function run_django() { - ! pip show -q django && return - - # Find shallowest manage.py script, either ./manage.py or /manage.py - local MANAGE_FILE=$(find . -maxdepth 2 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1) - - django_migrate "$MANAGE_FILE" - - # try to use gunicorn - run_gunicorn "$APP_MODULE" - # or fallback to Django's development server - django_runserver "$MANAGE_FILE" -} - -function django_migrate() { - [ -n "$DISABLE_MIGRATE" ] && return - echo "---> Migrating database ..." - django_manage_cmd "$1" migrate --noinput -} - -function django_runserver() { - echo "---> Serving application with 'manage.py runserver' ..." - echo "---> WARNING: this is NOT a recommended way to run you application in production!" - django_manage_cmd "$1" runserver "$BIND_ADDR" -} - -function django_manage_cmd() { - local MANAGE_FILE="$1" - local CMD="${@:2}" - - if [ ! -f "$MANAGE_FILE" ]; then - echo "WARNING: seems that you're using Django, but we could not find a 'manage.py' file." - echo "'manage.py $CMD' ignored." - return - fi - - if [[ "$CMD" =~ ^runserver ]]; then - exec python "$MANAGE_FILE" $CMD - else - python "$MANAGE_FILE" $CMD - fi -} - -function run_gunicorn() { - ! pip show -q gunicorn && return - - local APP_MODULE="$1" - - if [ -z "$APP_MODULE" ]; then - # Find shallowest wsgi.py file, one of ./wsgi.py, /wsgi.py or //wsgi.py, - # replace "/" with "." and remove ".py" suffix - APP_MODULE=$(find . -maxdepth 3 -type f -name 'wsgi.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1 | sed 's:/:.:;s:.py$::') - fi - - if [ -z "$APP_MODULE" ]; then - echo "WARNING: seems that you're trying to use gunicorn, but no WSGI application module was specified." - return - fi - - echo "---> Serving application with gunicorn ..." - exec gunicorn "$APP_MODULE" --bind="$BIND_ADDR" --access-logfile=- --config "$APP_CONFIG" -} - -function run_python_script() { - local APP_FILE="$1" - - [ ! -f "$APP_FILE" ] && return - - echo "---> Running application from Python script ..." - exec python -u "$APP_FILE" -} - - -run diff --git a/README.md b/README.md index 9b78433..20640e8 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,6 @@ From this initial state you can: Apart from the regular files created by Django (`project/*`, `welcome/*`, `manage.py`), this repository contains: ``` -.sti/ -└── bin/ - scripts used by source-to-image - ├── assemble - executed to produce a Docker image with your code and dependencies during build - └── run - executed to start your app during deployment - openshift/ - OpenShift-specific files ├── scripts - helper scripts └── templates - application templates