ruby/s2i/bin/run
2018-11-06 17:59:22 +00:00

39 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
function is_puma_installed() {
[ ! -f Gemfile.lock ] && return 1
grep ' puma ' Gemfile.lock >/dev/null
}
set -e
function check_number() {
if [[ ! "$2" =~ ^[0-9]+$ ]]; then
echo "$1 needs to be a non-negative number"
exit 1
fi
}
check_number PUMA_WORKERS "${PUMA_WORKERS:-0}"
check_number PUMA_MIN_THREADS "${PUMA_MIN_THREADS:-0}"
check_number PUMA_MAX_THREADS "${PUMA_MAX_THREADS:-0}"
export RACK_ENV=${RACK_ENV:-"production"}
if is_puma_installed; then
export_vars=$(cgroup-limits) ; export $export_vars
exec bundle exec "puma --config ../etc/puma.cfg"
else
echo "You might consider adding 'puma' into your Gemfile."
if bundle exec rackup -h &>/dev/null; then
if [ -f Gemfile ]; then
exec bundle exec "rackup -E ${RAILS_ENV:-$RACK_ENV} -P /tmp/rack.pid --host 0.0.0.0 --port 8080"
else
exec rackup -E "${RAILS_ENV:-$RACK_ENV}" -P /tmp/rack.pid --host 0.0.0.0 --port 8080
fi
else
echo "ERROR: Rubygem Rack is not installed in the present image."
echo " Add rack to your Gemfile in order to start the web server."
fi
fi