-
Notifications
You must be signed in to change notification settings - Fork 608
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
178 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
#!/usr/bin/env bash | ||
|
||
psmgr=/tmp/nginx-buildpack-wait | ||
rm -f $psmgr | ||
mkfifo $psmgr | ||
|
||
n=1 | ||
while getopts :f option ${@:1:2} | ||
do | ||
case "${option}" | ||
in | ||
f) FORCE=$OPTIND; n=$((n+1));; | ||
esac | ||
done | ||
|
||
# Initialize log directory. | ||
mkdir -p /tmp/logs/nginx | ||
touch /tmp/logs/nginx/access.log /tmp/logs/nginx/error.log | ||
echo 'buildpack=nginx at=logs-initialized' | ||
|
||
# Start log redirection. | ||
( | ||
# Redirect nginx logs to stdout. | ||
tail -qF -n 0 /tmp/logs/nginx/*.log | ||
echo 'logs' >$psmgr | ||
) & | ||
|
||
# Start App Server | ||
( | ||
# Take the command passed to this bin and start it. | ||
# E.g. bin/start-nginx bundle exec unicorn -c config/unicorn.rb | ||
COMMAND=${@:$n} | ||
echo "buildpack=nginx at=start-app cmd=$COMMAND" | ||
$COMMAND | ||
echo 'app' >$psmgr | ||
) & | ||
|
||
if [[ -z "$FORCE" ]] | ||
then | ||
FILE="/tmp/app-initialized" | ||
|
||
# We block on app-initialized so that when nginx binds to $PORT | ||
# are app is ready for traffic. | ||
while [[ ! -f "$FILE" ]] | ||
do | ||
echo 'buildpack=nginx at=app-initialization' | ||
sleep 1 | ||
done | ||
echo 'buildpack=nginx at=app-initialized' | ||
fi | ||
|
||
# Start nginx | ||
( | ||
# We expect nginx to run in foreground. | ||
# We also expect a socket to be at /tmp/nginx.socket. | ||
echo 'buildpack=nginx at=nginx-start' | ||
cd /tmp | ||
/usr/bin/nginx -p . -c /code/config/nginx.conf | ||
echo 'nginx' >$psmgr | ||
) & | ||
|
||
# This read will block the process waiting on a msg to be put into the fifo. | ||
# If any of the processes defined above should exit, | ||
# a msg will be put into the fifo causing the read operation | ||
# to un-block. The process putting the msg into the fifo | ||
# will use it's process name as a msg so that we can print the offending | ||
# process to stdout. | ||
read exit_process <$psmgr | ||
echo "buildpack=nginx at=exit process=$exit_process" | ||
exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
types { | ||
text/html html htm shtml; | ||
text/css css; | ||
text/xml xml; | ||
image/gif gif; | ||
image/jpeg jpeg jpg; | ||
application/javascript js; | ||
application/atom+xml atom; | ||
application/rss+xml rss; | ||
|
||
text/mathml mml; | ||
text/plain txt; | ||
text/vnd.sun.j2me.app-descriptor jad; | ||
text/vnd.wap.wml wml; | ||
text/x-component htc; | ||
|
||
image/avif avif; | ||
image/png png; | ||
image/svg+xml svg svgz; | ||
image/tiff tif tiff; | ||
image/vnd.wap.wbmp wbmp; | ||
image/webp webp; | ||
image/x-icon ico; | ||
image/x-jng jng; | ||
image/x-ms-bmp bmp; | ||
|
||
font/woff woff; | ||
font/woff2 woff2; | ||
|
||
application/java-archive jar war ear; | ||
application/json json; | ||
application/mac-binhex40 hqx; | ||
application/msword doc; | ||
application/pdf pdf; | ||
application/postscript ps eps ai; | ||
application/rtf rtf; | ||
application/vnd.apple.mpegurl m3u8; | ||
application/vnd.google-earth.kml+xml kml; | ||
application/vnd.google-earth.kmz kmz; | ||
application/vnd.ms-excel xls; | ||
application/vnd.ms-fontobject eot; | ||
application/vnd.ms-powerpoint ppt; | ||
application/vnd.oasis.opendocument.graphics odg; | ||
application/vnd.oasis.opendocument.presentation odp; | ||
application/vnd.oasis.opendocument.spreadsheet ods; | ||
application/vnd.oasis.opendocument.text odt; | ||
application/vnd.openxmlformats-officedocument.presentationml.presentation | ||
pptx; | ||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | ||
xlsx; | ||
application/vnd.openxmlformats-officedocument.wordprocessingml.document | ||
docx; | ||
application/vnd.wap.wmlc wmlc; | ||
application/wasm wasm; | ||
application/x-7z-compressed 7z; | ||
application/x-cocoa cco; | ||
application/x-java-archive-diff jardiff; | ||
application/x-java-jnlp-file jnlp; | ||
application/x-makeself run; | ||
application/x-perl pl pm; | ||
application/x-pilot prc pdb; | ||
application/x-rar-compressed rar; | ||
application/x-redhat-package-manager rpm; | ||
application/x-sea sea; | ||
application/x-shockwave-flash swf; | ||
application/x-stuffit sit; | ||
application/x-tcl tcl tk; | ||
application/x-x509-ca-cert der pem crt; | ||
application/x-xpinstall xpi; | ||
application/xhtml+xml xhtml; | ||
application/xspf+xml xspf; | ||
application/zip zip; | ||
|
||
application/octet-stream bin exe dll; | ||
application/octet-stream deb; | ||
application/octet-stream dmg; | ||
application/octet-stream iso img; | ||
application/octet-stream msi msp msm; | ||
|
||
audio/midi mid midi kar; | ||
audio/mpeg mp3; | ||
audio/ogg ogg; | ||
audio/x-m4a m4a; | ||
audio/x-realaudio ra; | ||
|
||
video/3gpp 3gpp 3gp; | ||
video/mp2t ts; | ||
video/mp4 mp4; | ||
video/mpeg mpeg mpg; | ||
video/quicktime mov; | ||
video/webm webm; | ||
video/x-flv flv; | ||
video/x-m4v m4v; | ||
video/x-mng mng; | ||
video/x-ms-asf asx asf; | ||
video/x-ms-wmv wmv; | ||
video/x-msvideo avi; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters