From f57c4bd4a3aa9616435db93348152a40a87e456e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Lesquir?= Date: Tue, 22 May 2018 20:37:20 -0400 Subject: [PATCH 1/5] Allow to add arguments on nginx-proxy docker run e.g.: ``` proxy: { docker: { args: [ "-p 8080:8080" ] } } ``` --- src/plugins/proxy/assets/templates/start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/proxy/assets/templates/start.sh b/src/plugins/proxy/assets/templates/start.sh index d0d2c833..a79a4810 100644 --- a/src/plugins/proxy/assets/templates/start.sh +++ b/src/plugins/proxy/assets/templates/start.sh @@ -54,6 +54,9 @@ sudo docker run \ -v /opt/$APPNAME/config/html:/usr/share/nginx/html \ -v /opt/$APPNAME/config/nginx-default.conf:/etc/nginx/conf.d/my_proxy.conf:ro \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ + <% if (typeof proxyConfig === "object" && typeof proxyConfig.docker === "object" && typeof proxyConfig.docker.args === "object") { %> \ + <% for (var args in proxyConfig.docker.args) { %> <%- docker.args[args] %> <% } %> \ + <% } %> \ jwilder/nginx-proxy echo "Ran nginx-proxy as $APPNAME" From b448b43e84bcba7fa0bb013005a28a5ba688356c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Lesquir?= Date: Tue, 22 May 2018 20:38:39 -0400 Subject: [PATCH 2/5] Allow to add arguments on nginx-proxy docker run Fix docker object --- src/plugins/proxy/assets/templates/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/proxy/assets/templates/start.sh b/src/plugins/proxy/assets/templates/start.sh index a79a4810..6835111c 100644 --- a/src/plugins/proxy/assets/templates/start.sh +++ b/src/plugins/proxy/assets/templates/start.sh @@ -55,7 +55,7 @@ sudo docker run \ -v /opt/$APPNAME/config/nginx-default.conf:/etc/nginx/conf.d/my_proxy.conf:ro \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ <% if (typeof proxyConfig === "object" && typeof proxyConfig.docker === "object" && typeof proxyConfig.docker.args === "object") { %> \ - <% for (var args in proxyConfig.docker.args) { %> <%- docker.args[args] %> <% } %> \ + <% for (var args in proxyConfig.docker.args) { %> <%- proxyConfig.docker.args[args] %> <% } %> \ <% } %> \ jwilder/nginx-proxy echo "Ran nginx-proxy as $APPNAME" From b66e17b694bcadd21413f6eb72bfeb3421f6cbab Mon Sep 17 00:00:00 2001 From: clesquir Date: Mon, 29 Oct 2018 21:00:36 -0400 Subject: [PATCH 3/5] Allow to add arguments on nginx-proxy docker run - Fixed as requested --- docs/docs.md | 4 ++++ src/plugins/proxy/assets/templates/docker-args.sh | 5 +++++ src/plugins/proxy/assets/templates/start.sh | 4 +--- src/plugins/proxy/command-handlers.js | 9 +++++++++ src/plugins/proxy/validate.js | 1 + 5 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/plugins/proxy/assets/templates/docker-args.sh diff --git a/docs/docs.md b/docs/docs.md index 674c5f47..8a155379 100644 --- a/docs/docs.md +++ b/docs/docs.md @@ -671,6 +671,10 @@ module.exports = { env: { DEFAULT_HOST: 'foo.bar.com' }, + // additional docker arguments (e.g.: additional ports) + dockerArgs: [ + "-p 8080:8080" + ], // env for the jrcs/letsencrypt-nginx-proxy-companion container envLetsEncrypt: { // Directory URI for the CA ACME API endpoint diff --git a/src/plugins/proxy/assets/templates/docker-args.sh b/src/plugins/proxy/assets/templates/docker-args.sh new file mode 100644 index 00000000..10b2cfce --- /dev/null +++ b/src/plugins/proxy/assets/templates/docker-args.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +<% if (typeof dockerArgs === "object") { %> \ + echo <% for (var args in dockerArgs) { %> <%- dockerArgs[args] %> <% } %> +<% } %> diff --git a/src/plugins/proxy/assets/templates/start.sh b/src/plugins/proxy/assets/templates/start.sh index 6835111c..61b4c20a 100644 --- a/src/plugins/proxy/assets/templates/start.sh +++ b/src/plugins/proxy/assets/templates/start.sh @@ -54,9 +54,7 @@ sudo docker run \ -v /opt/$APPNAME/config/html:/usr/share/nginx/html \ -v /opt/$APPNAME/config/nginx-default.conf:/etc/nginx/conf.d/my_proxy.conf:ro \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ - <% if (typeof proxyConfig === "object" && typeof proxyConfig.docker === "object" && typeof proxyConfig.docker.args === "object") { %> \ - <% for (var args in proxyConfig.docker.args) { %> <%- proxyConfig.docker.args[args] %> <% } %> \ - <% } %> \ + $APP_PATH/config/docker-args.sh \ jwilder/nginx-proxy echo "Ran nginx-proxy as $APPNAME" diff --git a/src/plugins/proxy/command-handlers.js b/src/plugins/proxy/command-handlers.js index f54feb02..2311c262 100644 --- a/src/plugins/proxy/command-handlers.js +++ b/src/plugins/proxy/command-handlers.js @@ -191,6 +191,15 @@ export function reconfigShared(api) { dest: `/opt/${PROXY_CONTAINER_NAME}/config/nginx-default.conf` }); + const sharedDockerArgs = shared.dockerArgs || []; + list.copy('Sending docker args', { + src: api.resolvePath(__dirname, 'assets/templates/docker-args.sh'), + dest: `/opt/${PROXY_CONTAINER_NAME}/config/docker-args.sh`, + vars: { + dockerArgs: sharedDockerArgs + } + }); + const sessions = api.getSessions(['app']); return api.runTaskList(list, sessions, { diff --git a/src/plugins/proxy/validate.js b/src/plugins/proxy/validate.js index 9356bf2e..d419993d 100644 --- a/src/plugins/proxy/validate.js +++ b/src/plugins/proxy/validate.js @@ -21,6 +21,7 @@ const schema = joi.object().keys({ httpPort: joi.number(), httpsPort: joi.number(), nginxConfig: joi.string(), + dockerArgs: joi.array().items(joi.string()), env: joi .object() .pattern(/[\s\S]*/, [joi.string(), joi.number(), joi.boolean()]), From 19cd919575050ba09dacaccdd2f4f9767a9d53ab Mon Sep 17 00:00:00 2001 From: clesquir Date: Mon, 29 Oct 2018 21:05:13 -0400 Subject: [PATCH 4/5] Allow to add arguments on nginx-proxy docker run - Fixed failing test --- docs/docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs.md b/docs/docs.md index 86169fb4..62ce6de4 100644 --- a/docs/docs.md +++ b/docs/docs.md @@ -679,7 +679,7 @@ module.exports = { }, // additional docker arguments (e.g.: additional ports) dockerArgs: [ - "-p 8080:8080" + '-p 8080:8080' ], // env for the jrcs/letsencrypt-nginx-proxy-companion container envLetsEncrypt: { From 35c1064d6b3c77eb274a68f7c71b6a0353ae35d6 Mon Sep 17 00:00:00 2001 From: clesquir Date: Mon, 29 Oct 2018 21:05:56 -0400 Subject: [PATCH 5/5] Allow to add arguments on nginx-proxy docker run - Fixed lint --- src/plugins/proxy/command-handlers.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/proxy/command-handlers.js b/src/plugins/proxy/command-handlers.js index 6cd64c80..70a20ff5 100644 --- a/src/plugins/proxy/command-handlers.js +++ b/src/plugins/proxy/command-handlers.js @@ -202,6 +202,7 @@ export function reconfigShared(api) { }); const sharedDockerArgs = shared.dockerArgs || []; + list.copy('Sending docker args', { src: api.resolvePath(__dirname, 'assets/templates/docker-args.sh'), dest: `/opt/${PROXY_CONTAINER_NAME}/config/docker-args.sh`,