From c4fd6d620bbc82bc39b0a5890c795471d7866eb8 Mon Sep 17 00:00:00 2001 From: Jeff Lindsay Date: Sun, 30 Jun 2013 11:39:05 -0500 Subject: [PATCH] nginx vhosts as a plugin? --- Makefile | 3 +-- dokku | 19 ++++++------------- nginx-app-conf | 10 ---------- nginx-reloader.conf | 4 ---- plugins/00_dokku-standard/commands | 7 +------ plugins/nginx-vhosts/commands | 8 ++++++++ plugins/nginx-vhosts/post-deploy | 17 +++++++++++++++++ 7 files changed, 33 insertions(+), 35 deletions(-) delete mode 100755 nginx-app-conf delete mode 100644 nginx-reloader.conf create mode 100755 plugins/nginx-vhosts/commands create mode 100755 plugins/nginx-vhosts/post-deploy diff --git a/Makefile b/Makefile index 6f8564ff9..bace8047f 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,6 @@ all: install install: gitreceive sshcommand pluginhook cp dokku /usr/local/bin/dokku cp receiver /home/git/receiver - cp nginx-app-conf /home/git/nginx-app-conf mkdir -p /var/lib/dokku/plugins cp -r plugins/* /var/lib/dokku/plugins PLUGIN_PATH=/var/lib/dokku/plugins pluginhook install @@ -27,4 +26,4 @@ pluginhook: cd /tmp && dpkg -i pluginhook_0.1.0_amd64.deb count: - cat receiver dokku bootstrap.sh nginx-app-conf | wc -l \ No newline at end of file + cat receiver dokku bootstrap.sh | wc -l \ No newline at end of file diff --git a/dokku b/dokku index 4c30ed233..6dd103737 100755 --- a/dokku +++ b/dokku @@ -1,6 +1,7 @@ #!/bin/bash +set -e export PLUGIN_PATH="/var/lib/dokku/plugins" -set -e; case "$1" in +case "$1" in receive) APP="$2"; IMAGE="app/$APP" echo "-----> Building $APP ..." @@ -9,17 +10,15 @@ set -e; case "$1" in echo "-----> Deploying $APP ..." dokku deploy $APP $IMAGE echo "=====> Application deployed:" - echo " http://$(< "$HOME/$APP/HOSTNAME")" + echo " $(dokku url $APP)" echo ;; build) IMAGE="$2" - # Place the app inside the container id=$(cat | docker run -i -a stdin progrium/buildstep /bin/bash -c "mkdir -p /app && tar -xC /app") test $(docker wait $id) -eq 0 docker commit $id $IMAGE > /dev/null - # Run the builder script and attach to view output id=$(docker run -d $IMAGE /build/builder) docker attach $id test $(docker wait $id) -eq 0 @@ -34,14 +33,8 @@ set -e; case "$1" in echo $id > "$HOME/$APP/CONTAINER" port=$(docker port $id 5000) echo $port > "$HOME/$APP/PORT" - if [[ -f "$HOME/DOMAIN" ]]; then - hostname="${APP/\//-}.$(< "$HOME/DOMAIN")" - $HOME/nginx-app-conf ${APP/\//-} $port $hostname > $HOME/$APP/nginx.conf - nc -U $HOME/reload-nginx - else - hostname="$(< "$HOME/HOSTNAME"):$port" - fi - echo $hostname > "$HOME/$APP/HOSTNAME" + echo "$(< "$HOME/HOSTNAME"):$port" > "$HOME/$APP/ADDRESS" + else # Regular deploy oldid=$(< "$HOME/$APP/CONTAINER") @@ -50,10 +43,10 @@ set -e; case "$1" in id=$(docker run -d -p ":$port" -e "PORT=$port" $IMAGE /bin/bash -c "/start web") echo $id > "$HOME/$APP/CONTAINER" fi + pluginhook post-deploy $APP $port ;; *) - shift pluginhook commands "$@" ;; diff --git a/nginx-app-conf b/nginx-app-conf deleted file mode 100755 index 3ac9236cb..000000000 --- a/nginx-app-conf +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -APP="$1"; PORT="$2"; HOSTNAME="$3" -cat< $HOME/$APP/nginx.conf +upstream $APP { server 127.0.0.1:$PORT; } +server { + listen 80; + server_name $hostname; + location / { proxy_pass http://$APP; } +} +EOF + nc -U $HOME/reload-nginx + echo "$hostname" > "$HOME/$APP/VHOST" +fi \ No newline at end of file