Skip to content

Commit

Permalink
Merge pull request #17 from cpoole/master
Browse files Browse the repository at this point in the history
Added ability to set puma worker timeout
  • Loading branch information
h0tbird committed Nov 7, 2016
2 parents 34378d4 + 3695dd1 commit 3f7d56d
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 5 deletions.
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ ENV PORTUS_VERSION="2.1.0" \

RUN apk --no-cache add --update -t deps git gcc make musl-dev libxml2-dev \
libxslt-dev mariadb-dev openssl-dev libffi-dev curl-dev \
&& apk --no-cache add bash ruby-bundler ruby-dev nodejs tzdata libxslt \
mariadb-libs mariadb-client openssl ruby-io-console ruby-bigdecimal \
mariadb-client-libs libcurl \
&& apk --no-cache add bash ruby-bundler ruby-dev ruby-rdoc ruby-irb \
nodejs tzdata libxslt mariadb-libs mariadb-client openssl ruby-io-console \
ruby-bigdecimal mariadb-client-libs libcurl \
&& echo 'gem: --verbose --no-document' > /etc/gemrc; cd /tmp \
&& git clone https://github.com/SUSE/Portus.git . \
&& git checkout ${PORTUS_VERSION}; mkdir /portus \
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ cd portus && docker run -it --rm \
--env RAILS_ENV=production \
--env PUMA_SSL_KEY=/certs/server-key.pem \
--env PUMA_SSL_CRT=/certs/server-crt.pem \
--env PUMA_WORKER_TIMEOUT=60 \
--env PUMA_IP=127.0.0.1 \
--env PUMA_PORT=443 \
--env PUMA_WORKERS=4 \
Expand Down
10 changes: 8 additions & 2 deletions rootfs/init
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
CONFIG_FILE='/portus/config/config.yml'
DB_CONFIG_FILE='/portus/config/database.yml'
SECRETS_CONFIG_FILE='/portus/config/secrets.yml'
PUMA_CONFIG_FILE='portus/config/puma.rb'

# Machine fqdn:
: ${PORTUS_MACHINE_FQDN:=127.0.0.1} && \
Expand Down Expand Up @@ -60,6 +61,11 @@ sed -i "s#XXX-PORTUS_ENCRYPTION_PRIVATE_KEY_PATH-XXX#${PORTUS_ENCRYPTION_PRIVATE
: ${PORTUS_PORTUS_PASSWORD:=portus} && \
sed -i "s#XXX-PORTUS_PORTUS_PASSWORD-XXX#${PORTUS_PORTUS_PASSWORD}#" ${SECRETS_CONFIG_FILE}

# Puma worker timeout:
: ${PUMA_WORKER_TIMEOUT:=60} && \
sed -i "s#XXX-PUMA_WORKER_TIMEOUT-XXX#${PUMA_WORKER_TIMEOUT}#" ${PUMA_CONFIG_FILE}


# Set Rack and Rails environment:
export RACK_ENV=${RACK_ENV:-production}
export RAILS_ENV=${RAILS_ENV:-production}
Expand Down Expand Up @@ -101,5 +107,5 @@ mysql -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u ${MARIADB_USER} -p${MARIADB_PASSW
export SSL_CERT_DIR=${SSL_CERT_DIR:-/certs:/usr/local/share/ca-certificates:/etc/ssl/certs} && c_rehash

[[ "${PORTUS_CHECK_SSL_USAGE_ENABLED}" == "true" && "${PUMA_SSL_KEY}" && "${PUMA_SSL_CRT}" ]] && \
exec env puma -e ${RACK_ENV} -b "ssl://${PUMA_IP:-0.0.0.0}:${PUMA_PORT:-443}?key=${PUMA_SSL_KEY}&cert=${PUMA_SSL_CRT}" -w ${PUMA_WORKERS:-3} ||
exec env puma -e ${RACK_ENV} -b "tcp://${PUMA_IP:-0.0.0.0}:${PUMA_PORT:-80}" -w ${PUMA_WORKERS:-3}
exec env puma -e ${RACK_ENV} -b "ssl://${PUMA_IP:-0.0.0.0}:${PUMA_PORT:-443}?key=${PUMA_SSL_KEY}&cert=${PUMA_SSL_CRT}" -w ${PUMA_WORKERS:-3} -C /portus/config/puma.rb ||
exec env puma -e ${RACK_ENV} -b "tcp://${PUMA_IP:-0.0.0.0}:${PUMA_PORT:-80}" -w ${PUMA_WORKERS:-3} -C /portus/config/puma.rb
4 changes: 4 additions & 0 deletions rootfs/portus/config/puma.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env puma

threads 0, 16
worker_timeout XXX-PUMA_WORKER_TIMEOUT-XXX

0 comments on commit 3f7d56d

Please sign in to comment.