From 017234f78367a46d31b63e051600219acf9573f9 Mon Sep 17 00:00:00 2001 From: Simon Schick Date: Thu, 21 Jun 2018 14:13:25 +0200 Subject: [PATCH] Added graceful timeout --- src/plugins/meteor/assets/meteor-stop.sh | 4 ++++ src/plugins/meteor/assets/templates/start.sh | 2 ++ src/plugins/meteor/command-handlers.js | 6 ++++-- src/plugins/meteor/utils.js | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/plugins/meteor/assets/meteor-stop.sh b/src/plugins/meteor/assets/meteor-stop.sh index 9c7bea4c..6da25005 100644 --- a/src/plugins/meteor/assets/meteor-stop.sh +++ b/src/plugins/meteor/assets/meteor-stop.sh @@ -1,6 +1,10 @@ #!/bin/bash APPNAME=<%= appName %> +TIMEOUT=<%= gracefulTimeout %> + +# Gracefully stopping the meteor application +sudo docker stop -t $TIMEOUT $APPNAME || : sudo docker rm -f $APPNAME || : sudo docker rm -f $APPNAME-frontend || : diff --git a/src/plugins/meteor/assets/templates/start.sh b/src/plugins/meteor/assets/templates/start.sh index 237a539f..87b40b02 100644 --- a/src/plugins/meteor/assets/templates/start.sh +++ b/src/plugins/meteor/assets/templates/start.sh @@ -1,6 +1,7 @@ #!/bin/bash APPNAME=<%= appName %> +TIMEOUT=<%= gracefulTimeout %> CLIENTSIZE=<%= nginxClientUploadLimit %> APP_PATH=/opt/$APPNAME BUNDLE_PATH=$APP_PATH/current @@ -28,6 +29,7 @@ echo "Volume" $VOLUME >&2 echo "Removing docker containers. Errors about nonexistent endpoints and containers are normal."; # Remove previous version of the app, if exists +sudo docker stop -t $TIMEOUT $APPNAME sudo docker rm -f $APPNAME # Remove container network if still exists diff --git a/src/plugins/meteor/command-handlers.js b/src/plugins/meteor/command-handlers.js index 508ac2bb..03e7fbef 100644 --- a/src/plugins/meteor/command-handlers.js +++ b/src/plugins/meteor/command-handlers.js @@ -349,7 +349,8 @@ export function stop(api) { list.executeScript('Stop Meteor', { script: api.resolvePath(__dirname, 'assets/meteor-stop.sh'), vars: { - appName: config.name + appName: config.name, + gracefulTimeout: config.gracefulTimeout || 10, } }); @@ -366,7 +367,8 @@ export function restart(api) { list.executeScript('Stop Meteor', { script: api.resolvePath(__dirname, 'assets/meteor-stop.sh'), vars: { - appName: config.name + appName: config.name, + gracefulTimeout: config.gracefulTimeout || 10, } }); diff --git a/src/plugins/meteor/utils.js b/src/plugins/meteor/utils.js index e87b0dd2..4896c4db 100644 --- a/src/plugins/meteor/utils.js +++ b/src/plugins/meteor/utils.js @@ -23,6 +23,7 @@ export function addStartAppTask(list, api) { script: api.resolvePath(__dirname, 'assets/meteor-start.sh'), vars: { appName: appConfig.name, + gracefulTimeout: appConfig.gracefulTimeout || 10, removeImage: isDeploy && !prepareBundleSupported(appConfig.docker) } });