File tree 5 files changed +44
-0
lines changed
5 files changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -75,6 +75,7 @@ dokku postgres:info lolipop
75
75
# you can also retrieve a specific piece of service info via flags
76
76
dokku postgres:info lolipop --data-dir
77
77
dokku postgres:info lolipop --dsn
78
+ dokku postgres:info lolipop --external-dsn
78
79
dokku postgres:info lolipop --exposed-ports
79
80
dokku postgres:info lolipop --id
80
81
dokku postgres:info lolipop --internal-ip
@@ -265,6 +266,27 @@ The `import` command should be used with any non-plain-text files exported by `p
265
266
dokku postgres:connect db < ./dump.sql
266
267
```
267
268
269
+ ## External DSN
270
+
271
+ ``` shell
272
+ # expose the database
273
+ dokku postgres:expose lolipop
274
+
275
+ # external dsn available on service info
276
+ dokku postgres:info lolipop
277
+ =====> Container Information
278
+ ...
279
+ External dsn: postgres://postgres:
[email protected] :28804/lolipop
280
+ Exposed ports: 5432-> 28804
281
+ ...
282
+ ```
283
+
284
+ So now you connect to your database with [ ` pgcli ` ] ( https://www.pgcli.com/ ) or with your favorite app.
285
+
286
+ ``` shell
287
+ pgcli
$( ssh [email protected] postgres:info lolipop --external-dsn)
288
+ ```
289
+
268
290
## Security
269
291
270
292
The connection to the database is done over SSL. A self-signed certificate is
Original file line number Diff line number Diff line change @@ -332,6 +332,7 @@ service_info() {
332
332
declare SERVICE=" $1 " INFO_FLAG=" $2 "
333
333
local SERVICE_ROOT=" $PLUGIN_DATA_ROOT /$SERVICE "
334
334
local SERVICE_URL=$( service_url " $SERVICE " )
335
+ local SERVICE_EXTERNAL_URL=$( service_external_url " $SERVICE " )
335
336
local PORT_FILE=" $SERVICE_ROOT /PORT"
336
337
local SERVICE_CONTAINER_ID=" $( cat " $SERVICE_ROOT /ID" ) "
337
338
local flag key valid_flags
@@ -340,6 +341,7 @@ service_info() {
340
341
" --config-dir: ${SERVICE_ROOT} /config"
341
342
" --data-dir: ${SERVICE_ROOT} /data"
342
343
" --dsn: ${SERVICE_URL} "
344
+ " --external-dsn: ${SERVICE_EXTERNAL_URL} "
343
345
" --exposed-ports: $( service_exposed_ports " $SERVICE " ) "
344
346
" --id: ${SERVICE_CONTAINER_ID} "
345
347
" --internal-ip: $( get_container_ip " ${SERVICE_CONTAINER_ID} " ) "
Original file line number Diff line number Diff line change @@ -152,3 +152,18 @@ service_url() {
152
152
local SERVICE_DNS_HOSTNAME=" $( service_dns_hostname " $SERVICE " ) "
153
153
echo " $PLUGIN_SCHEME ://postgres:$PASSWORD @$SERVICE_DNS_HOSTNAME :${PLUGIN_DATASTORE_PORTS[0]} /$DATABASE_NAME "
154
154
}
155
+
156
+ service_external_url () {
157
+ local SERVICE=" $1 "
158
+ local SERVICE_ROOT=" $PLUGIN_DATA_ROOT /$SERVICE "
159
+ local PORT_FILE=" $SERVICE_ROOT /PORT"
160
+ [[ ! -f $PORT_FILE ]] && echo ' -' && return 0
161
+ local GLOBAL_VHOST_FILE=" $DOKKU_ROOT /VHOST"
162
+ [[ ! -f $GLOBAL_VHOST_FILE ]] && echo ' -' && return 0
163
+
164
+ local PORTS=($( cat " $PORT_FILE " ) )
165
+ local PASSWORD=" $( cat " $SERVICE_ROOT /PASSWORD" ) "
166
+ local DATABASE_NAME=" $( get_database_name " $SERVICE " ) "
167
+ local GLOBAL_VHOSTS=($( cat " $GLOBAL_VHOST_FILE " ) )
168
+ echo " $PLUGIN_SCHEME ://postgres:$PASSWORD @${GLOBAL_VHOSTS[0]} :${PORTS[0]} /$DATABASE_NAME "
169
+ }
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ service-info-cmd() {
11
11
# E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --config-dir
12
12
# E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --data-dir
13
13
# E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --dsn
14
+ # E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --external-dsn
14
15
# E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --exposed-ports
15
16
# E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --id
16
17
# E dokku $PLUGIN_COMMAND_PREFIX:info lolipop --internal-ip
@@ -22,6 +23,7 @@ service-info-cmd() {
22
23
# F --config-dir, show the service configuration directory
23
24
# F --data-dir, show the service data directory
24
25
# F --dsn, show the service DSN
26
+ # F --external-dsn, show the exposed service DSN (you must expose the service first)
25
27
# F --exposed-ports, show service exposed ports
26
28
# F --id, show the service container id
27
29
# F --internal-ip, show the service internal ip
Original file line number Diff line number Diff line change @@ -47,6 +47,9 @@ teardown() {
47
47
run dokku " $PLUGIN_COMMAND_PREFIX :info" l --dsn
48
48
assert_success
49
49
50
+ run dokku " $PLUGIN_COMMAND_PREFIX :info" l --external-dsn
51
+ assert_success
52
+
50
53
run dokku " $PLUGIN_COMMAND_PREFIX :info" l --exposed-ports
51
54
assert_success
52
55
You can’t perform that action at this time.
0 commit comments