39 lines
1.1 KiB
Bash
Executable file
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
|