This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-manager.git


The following commit(s) were added to refs/heads/master by this push:
     new d30ced7  Support docker for jwt (#218)
d30ced7 is described below

commit d30ced78fafac93630120a86dfb091d03e745685
Author: tuteng <[email protected]>
AuthorDate: Tue Nov 26 02:07:26 2019 +0800

    Support docker for jwt (#218)
    
    * Add supervisor scripts for secret key and private key
    * Update README.md
---
 README.md                                          | 15 +++++++-----
 docker/Dockerfile                                  | 10 +++++++-
 docker/entrypoint.sh                               | 18 ++++++++++++++-
 ...pervisord.conf => supervisord-private-key.conf} |  6 ++---
 ...upervisord.conf => supervisord-secret-key.conf} |  6 ++---
 .../{supervisord.conf => supervisord-token.conf}   |  6 ++---
 docker/supervisord.conf                            |  2 +-
 src/README.md                                      | 27 +++++++++++++++++++++-
 8 files changed, 71 insertions(+), 19 deletions(-)

diff --git a/README.md b/README.md
index b8033f0..5de1b73 100644
--- a/README.md
+++ b/README.md
@@ -92,21 +92,24 @@ The pulsar-manager can monitor topics and subscriptions.
 
         * `DRIVER_CLASS_NAME`: the driver class name of PostgreSQL.
 
-        * `URL`: the url of PostgreSQL jdbc, example: 
jdbc:postgresql://127.0.0.1:5432/pulsar_manager
+        * `URL`: the url of PostgreSQL jdbc, example: 
jdbc:postgresql://127.0.0.1:5432/pulsar_manager.
 
-        * `USERNAME`: the username of PostgreSQL
+        * `USERNAME`: the username of PostgreSQL.
 
-        * `PASSWORD`: the password of PostgreSQL
+        * `PASSWORD`: the password of PostgreSQL.
+
+        * `LOG_LEVEL`: level of log.
 
         ```
-        docker pull apache/pulsar-manager
-        docker run -it -p 9527:9527 -e REDIRECT_HOST=front-end-ip -e 
REDIRECT_PORT=front-end-port -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc-url' -e USERNAME=root -e PASSWORD=pulsar pulsar-manager /bin/sh
+        docker pull apachepulsar/pulsar-manager
+        docker run -it -p 9527:9527 -e REDIRECT_HOST=front-end-ip -e 
REDIRECT_PORT=front-end-port -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc-url' -e USERNAME=root -e PASSWORD=pulsar -e LOG_LEVEL=DEBUG 
apachepulsar/pulsar-manager /bin/sh
         ```
 
         This is an example:
         
         ```
-        docker run -it -p 9527:9527 -e REDIRECT_HOST=http://192.168.0.104 -e 
REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e 
PASSWORD=pulsar -v $PWD:/data pulsar-manager:latest /bin/sh
+       docker pull apachepulsar/pulsar-manager:v0.1.0
+        docker run -it -p 9527:9527 -e REDIRECT_HOST=http://192.168.0.104 -e 
REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e 
PASSWORD=pulsar -e LOG_LEVEL=DEBUG -v $PWD:/data 
apachepulsar/pulsar-manager:v0.1.0 /bin/sh
         ```
 
    * Build a local environment
diff --git a/docker/Dockerfile b/docker/Dockerfile
index d5138f6..f863f37 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -45,10 +45,18 @@ WORKDIR /pulsar-manager
 
 COPY build/distributions/pulsar-manager.tar .
 
-RUN tar -zxvf pulsar-manager.tar
+RUN tar -xf pulsar-manager.tar
+
+RUN rm -r pulsar-manager.tar
 
 COPY docker/supervisord.conf /etc/
 
+COPY docker/supervisord-token.conf /etc/
+
+COPY docker/supervisord-private-key.conf /etc/
+
+COPY docker/supervisord-secret-key.conf /etc/
+
 COPY docker/default.conf /etc/nginx/conf.d/
 
 COPY docker/startup.sh /pulsar-manager/
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index d5a84fe..7a5b1ae 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -37,5 +37,21 @@ echo 'Starting Pulsar Manager Back end'
 
 touch /pulsar-manager/supervisor.sock
 chmod 777 /pulsar-manager/supervisor.sock
-supervisord -c /etc/supervisord.conf -n
 
+
+if [[ -n "$JWT_TOKEN" ]] && [[ -n "$PUBLIC_KEY" ]] && [[ -n "$PRIVATE_KEY" ]]
+then
+  echo "Use public key and private key to init JWT."
+  supervisord -c /etc/supervisord-private-key.conf -n
+elif [[ -n "$JWT_TOKEN" ]] && [[ -n "$SECRET_KEY" ]]
+then
+  echo "Use secret key to init JWT."
+  supervisord -c /etc/supervisord-secret-key.conf -n
+elif [[ -n "$JWT_TOKEN" ]]
+then
+  echo "Enable JWT auth."
+  supervisord -c /etc/supervisord-token.conf -n
+else
+  echo "Start servie no enable JWT."
+  supervisord -c /etc/supervisord.conf -n
+fi
diff --git a/docker/supervisord.conf b/docker/supervisord-private-key.conf
similarity index 83%
copy from docker/supervisord.conf
copy to docker/supervisord-private-key.conf
index 0c990f2..db7d914 100644
--- a/docker/supervisord.conf
+++ b/docker/supervisord-private-key.conf
@@ -21,12 +21,12 @@
 serverurl=unix:///pulsar-manager/supervisor.sock
 
 [supervisord]
-logfile_maxbytes=50MB        
+logfile_maxbytes=50MB
 logfile_backups=10
 nodaemon=false
 minfds=1024
 minprocs=200
 
 [program:pulsar-manager-backend]
-command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never
-user = root 
+command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never 
--logging.level.org.apache=%(ENV_LOG_LEVEL)s 
--backend.jwt.token=%(ENV_JWT_TOKEN)s --jwt.broker.public.key=%(ENV_PUBL [...]
+user = root
diff --git a/docker/supervisord.conf b/docker/supervisord-secret-key.conf
similarity index 85%
copy from docker/supervisord.conf
copy to docker/supervisord-secret-key.conf
index 0c990f2..cfb9f28 100644
--- a/docker/supervisord.conf
+++ b/docker/supervisord-secret-key.conf
@@ -21,12 +21,12 @@
 serverurl=unix:///pulsar-manager/supervisor.sock
 
 [supervisord]
-logfile_maxbytes=50MB        
+logfile_maxbytes=50MB
 logfile_backups=10
 nodaemon=false
 minfds=1024
 minprocs=200
 
 [program:pulsar-manager-backend]
-command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never
-user = root 
+command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never 
--logging.level.org.apache=%(ENV_LOG_LEVEL)s 
--backend.jwt.token=%(ENV_JWT_TOKEN)s --jwt.broker.secret.key=%(ENV_SECR [...]
+user = root
diff --git a/docker/supervisord.conf b/docker/supervisord-token.conf
similarity index 88%
copy from docker/supervisord.conf
copy to docker/supervisord-token.conf
index 0c990f2..5694b6a 100644
--- a/docker/supervisord.conf
+++ b/docker/supervisord-token.conf
@@ -21,12 +21,12 @@
 serverurl=unix:///pulsar-manager/supervisor.sock
 
 [supervisord]
-logfile_maxbytes=50MB        
+logfile_maxbytes=50MB
 logfile_backups=10
 nodaemon=false
 minfds=1024
 minprocs=200
 
 [program:pulsar-manager-backend]
-command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never
-user = root 
+command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never 
--logging.level.org.apache=%(ENV_LOG_LEVEL)s 
--backend.jwt.token=%(ENV_JWT_TOKEN)s
+user = root
diff --git a/docker/supervisord.conf b/docker/supervisord.conf
index 0c990f2..299b749 100644
--- a/docker/supervisord.conf
+++ b/docker/supervisord.conf
@@ -28,5 +28,5 @@ minfds=1024
 minprocs=200
 
 [program:pulsar-manager-backend]
-command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never
+command = /pulsar-manager/pulsar-manager/bin/pulsar-manager  
--redirect.host=%(ENV_REDIRECT_HOST)s --redirect.port=%(ENV_REDIRECT_PORT)s 
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s 
--spring.datasource.url=%(ENV_URL)s 
--spring.datasource.username=%(ENV_USERNAME)s 
--spring.datasource.password=%(ENV_PASSWORD)s 
--spring.datasource.initialization-mode=never 
--logging.level.org.apache=%(ENV_LOG_LEVEL)s
 user = root 
diff --git a/src/README.md b/src/README.md
index 34bb30a..b18eaec 100644
--- a/src/README.md
+++ b/src/README.md
@@ -75,4 +75,29 @@ jwt.broker.private.key=file:///path/broker-private.key
 or 
 jwt.broker.token.mode=SECRET
 jwt.broker.secret.key=file:///path/broker-secret.key
-```
\ No newline at end of file
+```
+
+* Method 3: Use Docker only use token.
+
+```
+export JWT_TOKEN="your-token"
+docker run -it -p 9527:9527 -e REDIRECT_HOST=http://192.168.55.182 -e 
REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e 
PASSWORD=pulsar -e LOG_LEVEL=DEBUG -e JWT_TOKEN=$JWT_TOKEN -v $PWD:/data 
apachepulsar/pulsar-manager:v0.1.0 /bin/sh
+```
+
+* Method 4: Use Docker with token, public key and private key.
+
+```
+export JWT_TOKEN="your-token"
+export PRIVATE_KEY="file:///private-key-path"
+export PUBLIC_KEY="file:///public-key-path"
+docker run -it -p 9527:9527 -e REDIRECT_HOST=http://192.168.55.182 -e 
REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e 
PASSWORD=pulsar -e LOG_LEVEL=DEBUG -e JWT_TOKEN=$JWT_TOKEN -e 
PRIVATE_KEY=$PRIVATE_KEY -e PUBLIC_KEY=$PUBLIC_KEY -v $PWD:/data -v 
$PWD/private-key-path:/pulsar-manager/private-key-path -v 
$PWD/public-key-path:/pulsar-manager/public-key-path 
apachepulsar/pulsar-manager:v0.1.0 /bin/sh
+```
+
+* Method 5: Use Docker with token, secret key.
+
+```
+export JWT_TOKEN="your-token"
+export SECRET_KEY="file:///secret-key-path"
+docker run -it -p 9527:9527 -e REDIRECT_HOST=http://192.168.55.182 -e 
REDIRECT_PORT=9527 -e DRIVER_CLASS_NAME=org.postgresql.Driver -e 
URL='jdbc:postgresql://127.0.0.1:5432/pulsar_manager' -e USERNAME=pulsar -e 
PASSWORD=pulsar -e LOG_LEVEL=DEBUG -e JWT_TOKEN=$JWT_TOKEN -e 
PRIVATE_KEY=$PRIVATE_KEY -e PUBLIC_KEY=$PUBLIC_KEY -v $PWD:/data -v 
$PWD/secret-key-path:/pulsar-manager/secret-key-path 
apachepulsar/pulsar-manager:v0.1.0 /bin/sh
+```
+

Reply via email to