Skip to content

Instantly share code, notes, and snippets.

@jrschumacher
Created January 16, 2015 18:03
Show Gist options
  • Save jrschumacher/58e5189942f28053a9e1 to your computer and use it in GitHub Desktop.
Save jrschumacher/58e5189942f28053a9e1 to your computer and use it in GitHub Desktop.
docker latest no port issue
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32b9ac00b8fa dokku/coach:latest "/bin/bash -c '/star About an hour ago Up About an hour determined_bardeen
ed13cc0c60b6 dokku/helloworld:latest "/bin/bash -c '/star About an hour ago Up About an hour 0.0.0.0:49154->5000/tcp dreamy_hopper
@jrschumacher
Copy link
Author

$ dokku deploy coach
-----> Running pre-flight checks
       check-deploy: /home/dokku/coach/CHECKS not found. attempting to retrieve it from container ...
       CHECKS file not found in container. skipping checks.
-----> Running post-deploy
-----> Configuring coach.xxx.com...
-----> Creating http nginx.conf
-----> Running nginx-pre-reload
       Reloading nginx
-----> Shutting down old container in 60 seconds

@jrschumacher
Copy link
Author

$ git push dokku master                                              master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 447 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
-----> Cleaning up ...
-----> Building coach ...
-----> Adding BUILD_ENV to build environment...
-----> Node.js app detected

       PRO TIP: Avoid using semver ranges starting with '>' in engines.node
       See https://devcenter.heroku.com/articles/nodejs-support

-----> Requested node range: >=0.10.0
-----> Resolved node version: 0.10.35
-----> Downloading and installing node
-----> Restoring node_modules directory from cache
-----> Pruning cached dependencies not specified in package.json
-----> Exporting config vars to environment
-----> Installing dependencies
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> Building runtime environment
-----> Discovering process types
       Procfile declares types -> web
-----> Releasing coach ...
-----> Deploying coach ...
-----> Running pre-flight checks
       check-deploy: /home/dokku/coach/CHECKS not found. attempting to retrieve it from container ...
       CHECKS file not found in container. skipping checks.
-----> Running post-deploy
-----> Configuring coach.xxx.com...
-----> Creating http nginx.conf
-----> Running nginx-pre-reload
       Reloading nginx
-----> Shutting down old container in 60 seconds
=====> Application deployed:
       http://coach.xxx.com

To dokku@xxx.com:coach
   b97869f..1137388  master -> master

@jrschumacher
Copy link
Author

$ docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED              STATUS              PORTS                     NAMES
eda039d0651d        dokku/coach:latest        "/bin/bash -c '/star   About a minute ago   Up About a minute                             jolly_sammet
ed13cc0c60b6        dokku/helloworld:latest   "/bin/bash -c '/star   About an hour ago    Up About an hour    0.0.0.0:49154->5000/tcp   dreamy_hopper

@jrschumacher
Copy link
Author

Server.js

var express = require('express'),
    compression = require('compression'),
    serveStatic = require('serve-static'),
    favicon = require('serve-favicon'),
    minify = require('express-minify'),
    app = express();

var staticOpts = {};
if(process.env.ENV === 'production') {
  staticOpts.maxAge = 86400000;
}

app.use(favicon(__dirname + '/www/favicon.ico'));

app.use(compression());

app.use(function(req, res, next) {
  if (/-controller\.js$/.test(req.url) ||
    /-service\.js$/.test(req.url) ||
    /app\.js$/.test(req.url)) {
      res._no_mangle = true;
  }

  next();
});

app.use(minify());

app.use(serveStatic(__dirname + '/www', staticOpts));

// CORS (Cross-Origin Resource Sharing) headers to support Cross-site HTTP requests
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
});

app.set('port', process.env.PORT || 5000);
console.log(process.env);

app.listen(app.get('port'), function () {
    console.log('Express server listening on port ' + app.get('port'));
});

@jrschumacher
Copy link
Author

$ # cat /home/dokku/coach/nginx.conf
upstream coach { server 172.17.0.33:5000; }
server {
  listen      [::]:80;
  listen      80;
  server_name coach.xxx.com coach.xxx2.com;
  location    / {
    proxy_pass  http://coach;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/coach/nginx.conf.d/*.conf;
}

@jrschumacher
Copy link
Author

$ docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                     NAMES
494d88be61f3        dokku/coach:latest        "/bin/bash -c '/star   24 seconds ago      Up 23 seconds                                 desperate_bohr
eda039d0651d        370be18cee78              "/bin/bash -c '/star   9 minutes ago       Up 9 minutes                                  jolly_sammet
ed13cc0c60b6        dokku/helloworld:latest   "/bin/bash -c '/star   2 hours ago         Up 2 hours          0.0.0.0:49154->5000/tcp   dreamy_hopper

@jrschumacher
Copy link
Author

$ dokku config coach
=== coach config vars ===
API_URL: http://api.xxx.com
ENV:     staging

@jrschumacher
Copy link
Author

New "App" Coach 2

git remote set-url dokku dokku@xxx.pw:coach2

$ git remote set-url dokku dokku@xxx.pw:coach2
$ git remote set-url --push dokku dokku@xxx.pw:coach2

git push dokku master

$ git push dokku master                                              master
Counting objects: 441, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (428/428), done.
Writing objects: 100% (441/441), 3.41 MiB | 2.07 MiB/s, done.
Total 441 (delta 83), reused 0 (delta 0)
-----> Cleaning up ...
-----> Building coach2 ...
-----> Adding BUILD_ENV to build environment...
-----> Node.js app detected

       PRO TIP: Avoid using semver ranges starting with '>' in engines.node
       See https://devcenter.heroku.com/articles/nodejs-support

-----> Requested node range: >=0.10.0
-----> Resolved node version: 0.10.35
-----> Downloading and installing node
-----> Exporting config vars to environment
-----> Installing dependencies

       > v8flags@1.0.8 install /tmp/build/node_modules/gulp/node_modules/v8flags
       > node fetch.js


       > node-sass@0.9.6 install /tmp/build/node_modules/gulp-sass/node_modules/node-sass
       > node build.js

       `linux-x64-v8-3.14` exists; testing


       ․․․․․․․․․․․․․․․․․․․․․․․․․․

         26 passing (216ms)

       Binary is fine; exiting

       > node-sass@0.9.6 install /tmp/build/node_modules/express-minify/node_modules/node-sass
       > node build.js

       `linux-x64-v8-3.14` exists; testing


       ․․․․․․․․․․․․․․․․․․․․․․․․․․

         26 passing (167ms)

       Binary is fine; exiting
       gulp-rename@1.2.0 node_modules/gulp-rename

       serve-favicon@2.2.0 node_modules/serve-favicon
       ├── fresh@0.2.4
       ├── ms@0.7.0
       ├── parseurl@1.3.0
       └── etag@1.5.1 (crc@3.2.1)

       serve-static@1.8.0 node_modules/serve-static
       ├── utils-merge@1.0.0
       ├── escape-html@1.0.1
       ├── parseurl@1.3.0
       └── send@0.11.0 (destroy@1.0.3, ms@0.7.0, fresh@0.2.4, range-parser@1.0.2, depd@1.0.0, mime@1.2.11, on-finished@2.2.0, debug@2.1.1, etag@1.5.1)

       express@4.4.5 node_modules/express
       ├── parseurl@1.0.1
       ├── utils-merge@1.0.0
       ├── escape-html@1.0.1
       ├── merge-descriptors@0.0.2
       ├── cookie@0.1.2
       ├── cookie-signature@1.0.4
       ├── range-parser@1.0.0
       ├── fresh@0.2.2
       ├── vary@0.1.0
       ├── qs@0.6.6
       ├── methods@1.0.1
       ├── serve-static@1.2.3
       ├── buffer-crc32@0.2.3
       ├── path-to-regexp@0.1.2
       ├── debug@1.0.2 (ms@0.6.2)
       ├── proxy-addr@1.0.1 (ipaddr.js@0.1.2)
       ├── accepts@1.0.7 (negotiator@0.4.7, mime-types@1.0.2)
       ├── send@0.4.3 (mime@1.2.11, finished@1.2.2)
       └── type-is@1.2.1 (mime-types@1.0.0)

       compression@1.3.0 node_modules/compression
       ├── on-headers@1.0.0
       ├── vary@1.0.0
       ├── bytes@1.0.0
       ├── debug@2.1.1 (ms@0.6.2)
       ├── compressible@2.0.1 (mime-db@1.5.0)
       └── accepts@1.2.2 (negotiator@0.5.0, mime-types@2.0.7)

       gulp-concat@2.4.3 node_modules/gulp-concat
       ├── through@2.3.6
       ├── concat-with-sourcemaps@1.0.0 (source-map@0.1.43)
       └── gulp-util@3.0.2 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, array-uniq@1.0.2, lodash._reinterpolate@2.4.1, replace-ext@0.0.1, chalk@0.5.1, minimist@1.1.0, vinyl@0.4.6, lodash.template@2.4.1, dateformat@1.0.11, multipipe@0.1.2, through2@0.6.3)

       gulp-minify-css@0.3.12 node_modules/gulp-minify-css
       ├── memory-cache@0.0.5
       ├── through2@0.6.3 (xtend@4.0.0, readable-stream@1.0.33)
       ├── bufferstreams@0.0.2 (readable-stream@1.0.33)
       ├── gulp-util@3.0.2 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, array-uniq@1.0.2, lodash._reinterpolate@2.4.1, replace-ext@0.0.1, minimist@1.1.0, chalk@0.5.1, vinyl@0.4.6, lodash.template@2.4.1, dateformat@1.0.11, multipipe@0.1.2)
       └── clean-css@3.0.4 (commander@2.5.1, source-map@0.1.43)

       gulp@3.8.10 node_modules/gulp
       ├── pretty-hrtime@0.2.2
       ├── interpret@0.3.10
       ├── deprecated@0.0.1
       ├── archy@1.0.0
       ├── tildify@1.0.0 (user-home@1.1.1)
       ├── minimist@1.1.0
       ├── chalk@0.5.1 (escape-string-regexp@1.0.2, ansi-styles@1.1.0, supports-color@0.2.0, has-ansi@0.1.0, strip-ansi@0.3.0)
       ├── semver@4.2.0
       ├── v8flags@1.0.8
       ├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
       ├── gulp-util@3.0.2 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, array-uniq@1.0.2, lodash._reinterpolate@2.4.1, replace-ext@0.0.1, vinyl@0.4.6, dateformat@1.0.11, lodash.template@2.4.1, through2@0.6.3, multipipe@0.1.2)
       ├── vinyl-fs@0.3.13 (graceful-fs@3.0.5, strip-bom@1.0.0, defaults@1.0.0, vinyl@0.4.6, mkdirp@0.5.0, glob-stream@3.1.18, through2@0.6.3, glob-watcher@0.0.6)
       └── liftoff@0.13.6 (extend@1.3.0, flagged-respawn@0.3.1, resolve@1.0.0, findup-sync@0.1.3)

       express-uglify@0.3.1 node_modules/express-uglify
       ├── uglify-js@1.3.5
       └── winston@0.5.10 (stack-trace@0.0.9, eyes@0.1.8, colors@0.6.2, pkginfo@0.2.3, async@0.1.22, loggly@0.3.11)

       gulp-sass@0.7.3 node_modules/gulp-sass
       ├── map-stream@0.1.0
       ├── gulp-util@3.0.2 (array-differ@1.0.0, beeper@1.0.0, object-assign@2.0.0, array-uniq@1.0.2, lodash._reinterpolate@2.4.1, replace-ext@0.0.1, chalk@0.5.1, vinyl@0.4.6, minimist@1.1.0, through2@0.6.3, dateformat@1.0.11, lodash.template@2.4.1, multipipe@0.1.2)
       └── node-sass@0.9.6 (get-stdin@3.0.2, object-assign@1.0.0, node-watch@0.3.4, node-sass-middleware@0.3.1, nan@1.3.0, chalk@0.5.1, shelljs@0.3.0, mkdirp@0.5.0, yargs@1.3.3, mocha@1.21.5, sinon@1.10.3)

       express-minify@0.0.11 node_modules/express-minify
       ├── on-headers@1.0.0
       ├── cssmin@0.4.2
       ├── coffee-script@1.8.0 (mkdirp@0.3.5)
       ├── uglify-js@2.4.16 (uglify-to-browserify@1.0.2, async@0.2.10, optimist@0.3.7, source-map@0.1.34)
       ├── stylus@0.47.3 (css-parse@1.7.0, mkdirp@0.3.5, debug@2.1.1, glob@3.2.11, sax@0.5.8)
       ├── less@1.7.5 (graceful-fs@3.0.5, mime@1.2.11, mkdirp@0.5.0, source-map@0.1.43, clean-css@2.2.23, request@2.40.0)
       └── node-sass@0.9.6 (get-stdin@3.0.2, object-assign@1.0.0, node-watch@0.3.4, node-sass-middleware@0.3.1, nan@1.3.0, chalk@0.5.1, shelljs@0.3.0, mkdirp@0.5.0, yargs@1.3.3, sinon@1.10.3, mocha@1.21.5)
-----> Caching node_modules directory for future builds
-----> Cleaning up node-gyp and npm artifacts
-----> Building runtime environment
-----> Discovering process types
       Procfile declares types -> web
-----> Releasing coach2 ...
-----> Deploying coach2 ...
-----> Running pre-flight checks
       check-deploy: /home/dokku/coach2/CHECKS not found. attempting to retrieve it from container ...
       CHECKS file not found in container. skipping checks.
-----> Running post-deploy
-----> Creating /home/dokku/coach2/DOMAINS
-----> Creating new /home/dokku/coach2/VHOST...
-----> Configuring coach2.xxx.pw...
-----> Creating http nginx.conf
-----> Running nginx-pre-reload
       Reloading nginx
=====> Application deployed:
       http://coach2.xxx.pw

To dokku@xxx.pw:coach2
 * [new branch]      master -> master

docker ps

$ docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                     NAMES
b8d665c855bb        dokku/coach2:latest       "/bin/bash -c '/star   48 seconds ago      Up 47 seconds                                 angry_almeida
494d88be61f3        dokku/coach:latest        "/bin/bash -c '/star   10 minutes ago      Up 10 minutes                                 desperate_bohr
ed13cc0c60b6        dokku/helloworld:latest   "/bin/bash -c '/star   2 hours ago         Up 2 hours          0.0.0.0:49154->5000/tcp   dreamy_hopper

@jrschumacher
Copy link
Author

++ id -un
+ [[ dokku != \d\o\k\k\u ]]
+ [[ -n git-receive-pack 'coach2' ]]
+ export -n SSH_ORIGINAL_COMMAND
+ [[ git-receive-pack =~ config-* ]]
+ /usr/local/bin/dokku git-receive-pack ''\''coach2'\'''
++ id -un
+ [[ dokku != \d\o\k\k\u ]]
+ [[ -n '' ]]
+ case "$1" in
+ implemented=0
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/00_dokku-standard/commands git-receive-pack ''\''coach2'\'''
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ '[' 10 -eq 10 ']'
+ continue
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/apps/commands git-receive-pack ''\''coach2'\'''
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ '[' 10 -eq 10 ']'
+ continue
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/backup/commands git-receive-pack ''\''coach2'\'''
+ CURRENT_BACKUP_VERSION=1
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ '[' 10 -eq 10 ']'
+ continue
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/config/commands git-receive-pack ''\''coach2'\'''
+ ENV_FILE='/home/dokku/'\''coach2'\''/ENV'
+ ENV_FILE_TEMP='/home/dokku/'\''coach2'\''/ENV.tmp'
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ '[' 10 -eq 10 ']'
+ continue
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/custom-domains/commands git-receive-pack ''\''coach2'\'''
+ [[ git-receive-pack == domains ]]
+ [[ git-receive-pack == domains:* ]]
+ case "$1" in
+ exit_code=0
+ set -e
+ '[' 0 -eq 10 ']'
+ implemented=1
+ '[' 0 -ne 0 ']'
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/domains/commands git-receive-pack ''\''coach2'\'''
+ RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'
+ RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ '[' 10 -eq 10 ']'
+ continue
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/git/commands git-receive-pack ''\''coach2'\'''
+ case "$1" in
++ sed 's/\\'\''/'\''/g'
++ perl -pe 's/(?<!\\)'\''//g'
++ echo ''\''coach2'\'''
+ APP=coach2
+ APP_PATH=/home/dokku/coach2
+ [[ git-receive-pack == \g\i\t\-\r\e\c\e\i\v\e\-\p\a\c\k ]]
+ [[ ! -d /home/dokku/coach2/refs ]]
+ args='git-receive-pack '\''coach2'\'''
+ git-shell -c 'git-receive-pack '\''coach2'\'''
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + implemented=0        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/00_dokku-standard/commands git-hook coach2        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/apps/commands git-hook coach2        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/backup/commands git-hook coach2        
remote: + CURRENT_BACKUP_VERSION=1        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/config/commands git-hook coach2        
remote: + ENV_FILE=/home/dokku/coach2/ENV        
remote: + ENV_FILE_TEMP=/home/dokku/coach2/ENV.tmp        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/custom-domains/commands git-hook coach2        
remote: + [[ git-hook == domains ]]        
remote: + [[ git-hook == domains:* ]]        
remote: + case "$1" in        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/domains/commands git-hook coach2        
remote: + RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/git/commands git-hook coach2        
remote: + case "$1" in        
remote: + APP=coach2        
remote: + read oldrev newrev refname        
remote: + [[ refs/heads/master = \r\e\f\s\/\h\e\a\d\s\/\m\a\s\t\e\r ]]        
remote: + sed -u 's/^/�[1G/'        
remote: + dokku receive coach2        
remote: + git_archive_all coach2 0e99272abd4405da8f3399fe626f1857a79cb5e7        
remote: + APP=coach2        
remote: + REV=0e99272abd4405da8f3399fe626f1857a79cb5e7        
remote: ++ id -un        
remote: ++ mktemp -d        
remote: + TMP_WORK_DIR=/tmp/tmp.DXSPKN5Ixx        
remote: + chmod 755 /tmp/tmp.DXSPKN5Ixx        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + APP=coach2        
remote: + IMAGE=dokku/coach2        
remote: + echo '-----> Cleaning up ...'        
remote: �[1G-----> Cleaning up ...        
remote: + dokku cleanup        
remote: + unset GIT_DIR GIT_WORK_TREE        
remote: + git clone -q /home/dokku/coach2 /tmp/tmp.DXSPKN5Ixx        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + grep '<none>'        
remote: + awk '{print $3}'        
remote: + xargs docker rmi        
remote: + docker images        
remote: + xargs docker rm        
remote: + awk '{print $1}'        
remote: + docker ps -a        
remote: + grep Exit        
remote: + echo '-----> Building coach2 ...'        
remote: �[1G-----> Building coach2 ...        
remote: + dokku build coach2        
remote: + cat        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + APP=coach2        
remote: + IMAGE=dokku/coach2        
remote: + CACHE_DIR=/home/dokku/coach2/cache        
remote: ++ docker run -i -a stdin progrium/buildstep /bin/bash -c 'mkdir -p /app && tar -xC /app'        
remote: ++ cat        
remote: + pushd /tmp/tmp.DXSPKN5Ixx        
remote: + git config advice.detachedHead false        
remote: + git checkout 0e99272abd4405da8f3399fe626f1857a79cb5e7        
remote: + git submodule update --init --recursive        
remote: + find -name .git -prune -exec rm -rf '{}' ';'        
remote: + tar c .        
remote: + popd        
remote: + rm -rf /tmp/tmp.DXSPKN5Ixx        
remote: + id=b3b26677cad50b2f27967b7a834496a0e301c301d452b9367288aa8bd99b9d93        
remote: ++ docker wait b3b26677cad50b2f27967b7a834496a0e301c301d452b9367288aa8bd99b9d93        
remote: + test 0 -eq 0        
remote: + docker commit b3b26677cad50b2f27967b7a834496a0e301c301d452b9367288aa8bd99b9d93 dokku/coach2        
remote: + [[ -d /home/dokku/coach2/cache ]]        
remote: + pluginhook pre-build coach2        
remote: + APP=coach2        
remote: + IMAGE=dokku/coach2        
remote: + BUILD_ENV=        
remote: + [[ -f /home/dokku/BUILD_ENV ]]        
remote: + grep -q CURL_CONNECT_TIMEOUT /home/dokku/ENV        
remote: + grep -q CURL_TIMEOUT /home/dokku/ENV        
remote: + [[ -f /home/dokku/ENV ]]        
remote: + BUILD_ENV+='export CURL_CONNECT_TIMEOUT=5        
remote: export CURL_TIMEOUT=30'        
remote: + [[ -f /home/dokku/coach2/ENV ]]        
remote: + BUILD_ENV+=' '        
remote: + BUILD_ENV+=        
remote: + [[ ! -z export CURL_CONNECT_TIMEOUT=5        
remote: export CURL_TIMEOUT=30  ]]        
remote: + echo '-----> Adding BUILD_ENV to build environment...'        
remote: �[1G-----> Adding BUILD_ENV to build environment...        
remote: ++ sed 's@export @@g'        
remote: ++ echo export CURL_CONNECT_TIMEOUT=5 export CURL_TIMEOUT=30        
remote: +++ cat        
remote: ++ docker run -i -a stdin dokku/coach2 /bin/bash -c 'for ENV_VAR in CURL_CONNECT_TIMEOUT=5 CURL_TIMEOUT=30; do echo $ENV_VAR |sed '\''s@^\([^=]*\)=\(.*\)$@echo \"\2\" >/tmp/env/\1@g'\'' >>/tmp/set_env.sh; done && mkdir -p /tmp/env && /bin/bash /tmp/set_env.sh'        
remote: + id=e40bdb0b01d3dcea7ee67736138dbe2921632c08ca0e12df76af231eaac1bb4a        
remote: ++ docker wait e40bdb0b01d3dcea7ee67736138dbe2921632c08ca0e12df76af231eaac1bb4a        
remote: + test 0 -eq 0        
remote: + docker commit e40bdb0b01d3dcea7ee67736138dbe2921632c08ca0e12df76af231eaac1bb4a dokku/coach2        
remote: ++ docker run -i -a stdin dokku/coach2 /bin/bash -c 'cat >> /app/.env'        
remote: ++ echo 'export CURL_CONNECT_TIMEOUT=5        
remote: export CURL_TIMEOUT=30 '        
remote: + id=c0abbcd5faed510974515d4fa13f76f8546b3703e8b92243020ca3183dc1b741        
remote: ++ docker wait c0abbcd5faed510974515d4fa13f76f8546b3703e8b92243020ca3183dc1b741        
remote: + test 0 -eq 0        
remote: + docker commit c0abbcd5faed510974515d4fa13f76f8546b3703e8b92243020ca3183dc1b741 dokku/coach2        
remote: ++ pluginhook docker-args coach2 build        
remote: ++ :        
remote: + DOCKER_ARGS=        
remote: ++ docker run -d -v /home/dokku/coach2/cache:/cache -e CACHE_PATH=/cache dokku/coach2 /build/builder        
remote: + id=eb915c986ae8553c8fe81d7cc61b27332ec245b5a3e339e392750e84343408c6        
remote: + docker attach eb915c986ae8553c8fe81d7cc61b27332ec245b5a3e339e392750e84343408c6        
remote: �[1G�[1G-----> Node.js app detected        
remote: �[1G�[1G               
remote: �[1G�[1G       PRO TIP: Avoid using semver ranges starting with '>' in engines.node        
remote: �[1G�[1G       See https://devcenter.heroku.com/articles/nodejs-support        
remote: �[1G�[1G               
remote: �[1G�[1G-----> Requested node range: >=0.10.0        
remote: �[1G�[1G-----> Resolved node version: 0.10.35        
remote: �[1G�[1G-----> Downloading and installing node        
remote: �[1G�[1G-----> Restoring node_modules directory from cache        
remote: �[1G�[1G-----> Pruning cached dependencies not specified in package.json        
remote: �[1G�[1G-----> Exporting config vars to environment        
remote: �[1G�[1G-----> Installing dependencies        
remote: �[1G�[1G-----> Caching node_modules directory for future builds        
remote: �[1G�[1G-----> Cleaning up node-gyp and npm artifacts        
remote: �[1G�[1G-----> Building runtime environment        
remote: �[1G�[1G-----> Discovering process types        
remote: �[1G�[1G       Procfile declares types -> web        
remote: ++ docker wait eb915c986ae8553c8fe81d7cc61b27332ec245b5a3e339e392750e84343408c6        
remote: + test 0 -eq 0        
remote: + docker commit eb915c986ae8553c8fe81d7cc61b27332ec245b5a3e339e392750e84343408c6 dokku/coach2        
remote: + pluginhook post-build coach2        
remote: + echo '-----> Releasing coach2 ...'        
remote: + dokku release coach2        
remote: �[1G-----> Releasing coach2 ...        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + APP=coach2        
remote: + IMAGE=dokku/coach2        
remote: + pluginhook pre-release coach2        
remote: + [[ -f /home/dokku/coach2/ENV ]]        
remote: ++ docker run -i -a stdin dokku/coach2 /bin/bash -c 'mkdir -p /app/.profile.d && cat > /app/.profile.d/app-env.sh'        
remote: + id=441321de8d54690684953f16fd956ad208b021ce415eb55b38eacdc4487b8022        
remote: ++ docker wait 441321de8d54690684953f16fd956ad208b021ce415eb55b38eacdc4487b8022        
remote: + test 0 -eq 0        
remote: + docker commit 441321de8d54690684953f16fd956ad208b021ce415eb55b38eacdc4487b8022 dokku/coach2        
remote: + pluginhook post-release coach2        
remote: + echo '-----> Deploying coach2 ...'        
remote: + dokku deploy coach2        
remote: �[1G-----> Deploying coach2 ...        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + APP=coach2        
remote: + IMAGE=dokku/coach2        
remote: + pluginhook pre-deploy coach2        
remote: + [[ -f /home/dokku/coach2/CONTAINER ]]        
remote: + oldid=4ad4c4c0efc267e149ce3b2f9c2da10ffb7aaa00180cadbfbec2fafb238361cc        
remote: ++ pluginhook docker-args coach2 deploy        
remote: ++ :        
remote: + DOCKER_ARGS=        
remote: ++ pluginhook bind-external-ip coach2        
remote: + APP=coach2        
remote: + set +e        
remote: ++ dokku config:get coach2 NO_VHOST        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + implemented=0        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/00_dokku-standard/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/apps/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/backup/commands config:get coach2 NO_VHOST        
remote: + CURRENT_BACKUP_VERSION=1        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/config/commands config:get coach2 NO_VHOST        
remote: + ENV_FILE=/home/dokku/coach2/ENV        
remote: + ENV_FILE_TEMP=/home/dokku/coach2/ENV.tmp        
remote: + case "$1" in        
remote: + [[ -z coach2 ]]        
remote: + [[ ! -d /home/dokku/coach2 ]]        
remote: + APP=coach2        
remote: + [[ -z NO_VHOST ]]        
remote: + config_create        
remote: + '[' -f /home/dokku/coach2/ENV ']'        
remote: + [[ ! -s /home/dokku/coach2/ENV ]]        
remote: + exit 0        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/custom-domains/commands config:get coach2 NO_VHOST        
remote: + [[ config:get == domains ]]        
remote: + [[ config:get == domains:* ]]        
remote: + case "$1" in        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/domains/commands config:get coach2 NO_VHOST        
remote: + RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/git/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/nginx-vhosts/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + '[' 1 -eq 0 ']'        
remote: + NO_VHOST=        
remote: + set -e        
remote: + RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + [[ -f /home/dokku/VHOST ]]        
remote: + GLOBAL_VHOST=xxx.pw        
remote: + [[ -n '' ]]        
remote: + [[ xxx.pw =~ ([0-9]{1,3}[\.]){3}[0-9]{1,3} ]]        
remote: + [[ xxx.pw =~ ([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3} ]]        
remote: + [[ -z xxx.pw ]]        
remote: + [[ -f /home/dokku/coach2/VHOST ]]        
remote: + echo false        
remote: + BIND_EXTERNAL=false        
remote: + [[ false = \f\a\l\s\e ]]        
remote: + port=5000        
remote: ++ docker run -d -e PORT=5000 dokku/coach2 /bin/bash -c '/start web'        
remote: + id=bee62102dfcaa930beaf2ad971452f3f5eba87165ca61cc6a7cc436d86a3d203        
remote: ++ docker inspect --format '{{ .NetworkSettings.IPAddress }}' bee62102dfcaa930beaf2ad971452f3f5eba87165ca61cc6a7cc436d86a3d203        
remote: + ipaddr=172.17.0.57        
remote: + echo 172.17.0.57        
remote: + trap kill_new INT TERM EXIT        
remote: + echo '-----> Running pre-flight checks'        
remote: + pluginhook check-deploy bee62102dfcaa930beaf2ad971452f3f5eba87165ca61cc6a7cc436d86a3d203 coach2 5000 172.17.0.57        
remote: �[1G-----> Running pre-flight checks        
remote: + CONTAINERID=bee62102dfcaa930beaf2ad971452f3f5eba87165ca61cc6a7cc436d86a3d203        
remote: + APP=coach2        
remote: + PORT=5000        
remote: + HOSTNAME=172.17.0.57        
remote: + [[ -f /home/dokku/coach2/ENV ]]        
remote: + source /home/dokku/coach2/ENV        
remote: + FILENAME=/home/dokku/coach2/CHECKS        
remote: + WAIT=5        
remote: + [[ ! -f /home/dokku/coach2/CHECKS ]]        
remote: + echo '       check-deploy: /home/dokku/coach2/CHECKS not found. attempting to retrieve it from container ...'        
remote: �[1G       check-deploy: /home/dokku/coach2/CHECKS not found. attempting to retrieve it from container ...        
remote: ++ mktemp -d /tmp/CHECKS.XXXXX        
remote: + TMPDIR=/tmp/CHECKS.LHXsl        
remote: + docker cp bee62102dfcaa930beaf2ad971452f3f5eba87165ca61cc6a7cc436d86a3d203:/app/CHECKS /tmp/CHECKS.LHXsl        
remote: + true        
remote: + [[ ! -s /tmp/CHECKS.LHXsl/CHECKS ]]        
remote: + echo '       CHECKS file not found in container. skipping checks.'        
remote: + rm -rf /tmp/CHECKS.LHXsl        
remote: �[1G       CHECKS file not found in container. skipping checks.        
remote: + exit 0        
remote: + echo bee62102dfcaa930beaf2ad971452f3f5eba87165ca61cc6a7cc436d86a3d203        
remote: + echo 5000        
remote: + echo http://xxx.pw:5000        
remote: + echo '-----> Running post-deploy'        
remote: + pluginhook post-deploy coach2 5000 172.17.0.57        
remote: �[1G-----> Running post-deploy        
remote: + APP=coach2        
remote: + PORT=5000        
remote: + IP=172.17.0.57        
remote: + set +e        
remote: ++ dokku config:get coach2 NO_VHOST        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + implemented=0        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/00_dokku-standard/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/apps/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/backup/commands config:get coach2 NO_VHOST        
remote: + CURRENT_BACKUP_VERSION=1        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/config/commands config:get coach2 NO_VHOST        
remote: + ENV_FILE=/home/dokku/coach2/ENV        
remote: + ENV_FILE_TEMP=/home/dokku/coach2/ENV.tmp        
remote: + case "$1" in        
remote: + [[ -z coach2 ]]        
remote: + [[ ! -d /home/dokku/coach2 ]]        
remote: + APP=coach2        
remote: + [[ -z NO_VHOST ]]        
remote: + config_create        
remote: + '[' -f /home/dokku/coach2/ENV ']'        
remote: + [[ ! -s /home/dokku/coach2/ENV ]]        
remote: + exit 0        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/custom-domains/commands config:get coach2 NO_VHOST        
remote: + [[ config:get == domains ]]        
remote: + [[ config:get == domains:* ]]        
remote: + case "$1" in        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/domains/commands config:get coach2 NO_VHOST        
remote: + RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/git/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/nginx-vhosts/commands config:get coach2 NO_VHOST        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + '[' 1 -eq 0 ']'        
remote: + NO_VHOST=        
remote: + set -e        
remote: + [[ -n '' ]]        
remote: + [[ ! -f /home/dokku/coach2/VHOST ]]        
remote: + dokku nginx:build-config coach2 5000 172.17.0.57        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + implemented=0        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/00_dokku-standard/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/apps/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/backup/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + CURRENT_BACKUP_VERSION=1        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/config/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + ENV_FILE=/home/dokku/coach2/ENV        
remote: + ENV_FILE_TEMP=/home/dokku/coach2/ENV.tmp        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/custom-domains/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + [[ nginx:build-config == domains ]]        
remote: + [[ nginx:build-config == domains:* ]]        
remote: + case "$1" in        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/domains/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/git/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/nginx-vhosts/commands nginx:build-config coach2 5000 172.17.0.57        
remote: + case "$1" in        
remote: + APP=coach2        
remote: + DOKKU_APP_LISTEN_PORT=5000        
remote: + DOKKU_APP_LISTEN_IP=172.17.0.57        
remote: + VHOST_PATH=/home/dokku/coach2/VHOST        
remote: + WILDCARD_SSL=/home/dokku/tls        
remote: + SSL=/home/dokku/coach2/tls        
remote: + [[ -z 5000 ]]        
remote: + [[ -z 172.17.0.57 ]]        
remote: + [[ -f /home/dokku/coach2/ENV ]]        
remote: + source /home/dokku/coach2/ENV        
remote: + [[ ! -n '' ]]        
remote: + [[ -f /home/dokku/coach2/VHOST ]]        
remote: ++ cat /home/dokku/coach2/VHOST        
remote: + NONSSL_VHOSTS=coach2.xxx.pw        
remote: + [[ -e /home/dokku/coach2/tls/server.crt ]]        
remote: + [[ -e /home/dokku/tls/server.crt ]]        
remote: + NGINX_CONF=/var/lib/dokku/plugins/nginx-vhosts/templates/nginx.conf        
remote: + SCHEME=http        
remote: + [[ -n '' ]]        
remote: + APP_NGINX_TEMPLATE=/home/dokku/coach2/nginx.conf.template        
remote: + [[ -f /home/dokku/coach2/nginx.conf.template ]]        
remote: + xargs -i echo '-----> Configuring {}...'        
remote: �[1G-----> Configuring coach2.xxx.pw...        
remote: ++ tr '\n' ' '        
remote: ++ echo coach2.xxx.pw        
remote: + NOSSL_SERVER_NAME='coach2.xxx.pw '        
remote: + [[ -n 5000 ]]        
remote: + [[ -n 172.17.0.57 ]]        
remote: + echo '-----> Creating http nginx.conf'        
remote: + echo 'upstream coach2 { server 172.17.0.57:5000; }'        
remote: �[1G-----> Creating http nginx.conf        
remote: + eval 'cat <<< "server {        
remote:   listen      [::]:80;        
remote:   listen      80;        
remote:   server_name $NOSSL_SERVER_NAME;        
remote:   location    / {        
remote:     proxy_pass  http://$APP;        
remote:     proxy_http_version 1.1;        
remote:     proxy_set_header Upgrade \$http_upgrade;        
remote:     proxy_set_header Connection "upgrade";        
remote:     proxy_set_header Host \$http_host;        
remote:     proxy_set_header X-Forwarded-Proto \$scheme;        
remote:     proxy_set_header X-Forwarded-For \$remote_addr;        
remote:     proxy_set_header X-Forwarded-Port \$server_port;        
remote:     proxy_set_header X-Request-Start \$msec;        
remote:   }        
remote:   include $DOKKU_ROOT/$APP/nginx.conf.d/*.conf;        
remote: }" >> /home/dokku/coach2/nginx.conf'        
remote: ++ cat        
remote: + echo '-----> Running nginx-pre-reload'        
remote: + pluginhook nginx-pre-reload coach2 5000 172.17.0.57        
remote: �[1G-----> Running nginx-pre-reload        
remote: + APP=coach2        
remote: + DOMAINS_FILE=/home/dokku/coach2/DOMAINS        
remote: + [[ -f /home/dokku/coach2/DOMAINS ]]        
remote: + DOMAINS=        
remote: + sed -i -r 's/server_name ([^; \n\t]*)([^;]*)(;?)/server_name \1 ;/' /home/dokku/coach2/nginx.conf        
remote: + echo '       Reloading nginx'        
remote: + restart_nginx        
remote: �[1G       Reloading nginx        
remote: + case "$DOKKU_DISTRO" in        
remote: + sudo /etc/init.d/nginx reload        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + '[' 1 -eq 0 ']'        
remote: + trap - INT TERM EXIT        
remote: + [[ -n 4ad4c4c0efc267e149ce3b2f9c2da10ffb7aaa00180cadbfbec2fafb238361cc ]]        
remote: + WAIT=60        
remote: + echo '-----> Shutting down old container in 60 seconds'        
remote: + disown -a        
remote: + sleep 0.1        
remote: �[1G-----> Shutting down old container in 60 seconds        
remote: + exec        
remote: + echo '=====> Application deployed:'        
remote: �[1G=====> Application deployed:        
remote: + sed 's/^/       /'        
remote: + dokku urls coach2        
remote: ++ id -un        
remote: + [[ dokku != \d\o\k\k\u ]]        
remote: + [[ -n '' ]]        
remote: + case "$1" in        
remote: + implemented=0        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/00_dokku-standard/commands urls coach2        
remote: + case "$1" in        
remote: + [[ -z coach2 ]]        
remote: + [[ ! -d /home/dokku/coach2 ]]        
remote: + APP=coach2        
remote: + SCHEME=http        
remote: + SSL=/home/dokku/coach2/tls        
remote: + WILDCARD_SSL=/home/dokku/tls        
remote: + [[ -e /home/dokku/coach2/tls/server.crt ]]        
remote: + [[ -e /home/dokku/tls/server.crt ]]        
remote: + [[ -f /home/dokku/coach2/VHOST ]]        
remote: + case "$1" in        
remote: + for vhost in '$(< "$DOKKU_ROOT/$APP/VHOST")'        
remote: + echo http://coach2.xxx.pw        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/apps/commands urls coach2        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/backup/commands urls coach2        
remote: + CURRENT_BACKUP_VERSION=1        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/config/commands urls coach2        
remote: + ENV_FILE=/home/dokku/coach2/ENV        
remote: + ENV_FILE_TEMP=/home/dokku/coach2/ENV.tmp        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/custom-domains/commands urls coach2        
remote: + [[ urls == domains ]]        
remote: + [[ urls == domains:* ]]        
remote: + case "$1" in        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/domains/commands urls coach2        
remote: + RE_IPV4='([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'        
remote: + RE_IPV6='([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/git/commands urls coach2        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/nginx-vhosts/commands urls coach2        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + '[' 1 -eq 0 ']'        
remote: + echo        
remote: �[1G       http://coach2.xxx.pw        
remote: �[1G        
remote: + read oldrev newrev refname        
remote: + exit_code=0        
remote: + set -e        
remote: + '[' 0 -eq 10 ']'        
remote: + implemented=1        
remote: + '[' 0 -ne 0 ']'        
remote: + for script in '$PLUGIN_PATH/*/commands'        
remote: + set +e        
remote: + /var/lib/dokku/plugins/nginx-vhosts/commands git-hook coach2        
remote: + case "$1" in        
remote: + exit 10        
remote: + exit_code=10        
remote: + set -e        
remote: + '[' 10 -eq 10 ']'        
remote: + continue        
remote: + '[' 1 -eq 0 ']'        
+ exit_code=0
+ set -e
+ '[' 0 -eq 10 ']'
+ implemented=1
+ '[' 0 -ne 0 ']'
+ for script in '$PLUGIN_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/nginx-vhosts/commands git-receive-pack ''\''coach2'\'''
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ '[' 10 -eq 10 ']'
+ continue
+ '[' 1 -eq 0 ']'
+ exit 0
To dokku@xxx.pw:coach2
   84014e5..0e99272  master -> master

@jrschumacher
Copy link
Author

CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                     NAMES
20fd575a488f        dokku/coach2:latest       "/bin/bash -c '/star   6 minutes ago       Up 6 minutes                                  boring_newton
bee62102dfca        dokku/coach2:latest       "/bin/bash -c '/star   10 minutes ago      Up 10 minutes                                 distracted_brown

@jrschumacher
Copy link
Author

nginx.conf for coach2

server {
  listen      [::]:80;
  listen      80;
  server_name coach2.xxx.pw ;
  location    / {
    proxy_pass  http://coach2;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/coach2/nginx.conf.d/*.conf;
}

@jrschumacher
Copy link
Author

$ cat /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  worker_connections 768;
}

http {
  server_tokens off;
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;

  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  gzip on;
  gzip_disable "msie6";

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}

@jrschumacher
Copy link
Author

cat dokku.conf
include /home/dokku/*/nginx.conf;

ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!CAMELLIA;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;

#ssl_certificate /home/dokku/tls/server.crt;
#ssl_certificate_key /home/dokku/tls/server.key;

@jrschumacher
Copy link
Author

$ ls -lah /home/dokku/*/nginx.conf
-rw-rw-r-- 1 dokku dokku 576 Jan 16 13:35 /home/dokku/coach2/nginx.conf
-rw-rw-r-- 1 dokku dokku 592 Jan 16 13:16 /home/dokku/coach/nginx.conf
-rw-rw-r-- 1 dokku dokku 592 Jan 16 11:14 /home/dokku/helloworld/nginx.conf
-rw-rw-r-- 1 dokku dokku 592 Jan 16 12:55 /home/dokku/whiteboard/nginx.conf

@jrschumacher
Copy link
Author

$ git clone git@github.com:ruedap/node-hello-world.git
$ git remote add deploy dokku@xxx.pw:test
$ git push deploy master
$ git commit --allow-empty -m "test"

$ git push deploy master
$ git commit --allow-empty -m "test"

$ git push deploy master
$ git commit --allow-empty -m "test"
$ docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED              STATUS              PORTS                     NAMES
38a6de59dfe6        dokku/test:latest         "/bin/bash -c '/star   1 seconds ago        Up 1 seconds                                  romantic_sinoussi
b16be6c5dae3        5b515d9a4ac8              "/bin/bash -c '/star   36 seconds ago       Up 36 seconds                                 grave_perlman
ebe8d2db6fe6        09e1e1c2cda3              "/bin/bash -c '/star   About a minute ago   Up About a minute                             prickly_jones

@jrschumacher
Copy link
Author

$ grep coach2.xxx.pw /home/dokku/*/nginx.conf
/home/dokku/coach2/nginx.conf:  server_name coach2.xxx.pw ;
$ grep -r coach2.xxx.pw /etc/nginx/

@jrschumacher
Copy link
Author

/etc/nginx/conf.d/dokku.conf:include /home/dokku/*/nginx.conf;
/etc/nginx/snippets/fastcgi-php.conf:include fastcgi.conf;
/etc/nginx/nginx.conf.dpkg-old:  include /etc/nginx/mime.types;
/etc/nginx/nginx.conf.dpkg-old:  include /etc/nginx/conf.d/*.conf;
/etc/nginx/nginx.conf.dpkg-old:  include /etc/nginx/sites-enabled/*;
/etc/nginx/nginx.conf:  include /etc/nginx/mime.types;
/etc/nginx/nginx.conf:  include /etc/nginx/conf.d/*.conf;
/etc/nginx/nginx.conf:  include /etc/nginx/sites-enabled/*;
/etc/nginx/sites-available/default: # include snippets/snakeoil.conf;
/etc/nginx/sites-available/default: #   include snippets/fastcgi-php.conf;

@jrschumacher
Copy link
Author

cat /home/dokku/*/nginx.conf
upstream coach2 { server 172.17.0.57:5000; }
server {
  listen      [::]:80;
  listen      80;
  server_name coach2.xxx.pw ;
  location    / {
    proxy_pass  http://coach2;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/coach2/nginx.conf.d/*.conf;
}
upstream coach { server 172.17.0.39:5000; }
server {
  listen      [::]:80;
  listen      80;
  server_name coach.xxx.pw coach.thebaydoor.com;
  location    / {
    proxy_pass  http://coach;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/coach/nginx.conf.d/*.conf;
}
upstream helloworld { server 127.0.0.1:49154; }
server {
  listen      [::]:80;
  listen      80;
  server_name helloworld.xxx.pw;
  location    / {
    proxy_pass  http://helloworld;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/helloworld/nginx.conf.d/*.conf;
}
upstream test { server 172.17.0.75:5000; }
server {
  listen      [::]:80;
  listen      80;
  server_name test.xxx.pw ;
  location    / {
    proxy_pass  http://test;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/test/nginx.conf.d/*.conf;
}
upstream whiteboard { server 172.17.0.26:5000; }
server {
  listen      [::]:80;
  listen      80;
  server_name whiteboard.xxx.pw ;
  location    / {
    proxy_pass  http://whiteboard;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Request-Start $msec;
  }
  include /home/dokku/whiteboard/nginx.conf.d/*.conf;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment