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
+```
+