Docker 环境变量,dokku-redis
Docker environment variables, dokku-redis
在我的 express.js 应用程序中使用 redis 作为我的会话存储。我有问题。将它们缩小到连接问题。
如何从 express.js 应用程序中访问 docker 环境变量?我正在使用 dokku-redis。
它报告说环境变量是在链接的应用程序上自动设置的...我已经链接了我的应用程序。 运行 dokku redis:info foo 显示所有链接。我正在尝试拉入 REDIS_URL
谢谢,罗布
https://github.com/dokku/dokku-redis
------------
a redis service can be linked to a
container this will use native docker
links via the docker-options plugin
here we link it to our 'playground' app
NOTE: this will restart your app
dokku redis:link lolipop playground
the following environment variables will be set automatically by docker (not on the app itself, so they won’t be listed when calling dokku config)
DOKKU_REDIS_LOLIPOP_NAME=/lolipop/DATABASE
DOKKU_REDIS_LOLIPOP_PORT=tcp://172.17.0.1:6379
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP=tcp://172.17.0.1:6379
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_PROTO=tcp
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_PORT=6379
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_ADDR=172.17.0.1
and the following will be set on the linked application by default
REDIS_URL=redis://lolipop:SOME_PASSWORD@dokku-redis-lolipop:6379
NOTE: the host exposed here only works internally in docker containers. If
you want your container to be reachable from outside, you should use 'expose'.
------------------------------
编辑 - 抱歉,我忘记补充说我已经尝试过了 process.env
您可以通过 process.env
访问环境变量,如下所示:
console.log(process.env["DOKKU_REDIS_LOLIPOP_NAME"]);
console.log(process.env["DOKKU_REDIS_LOLIPOP_PORT"]);
console.log(process.env["REDIS_URL"]);
只要对象中的键不损害变量命名约定,您也可以像这样访问它们:
console.log(process.env.REDIS_URL);
关于 javascript 变量命名规则的更多信息:What characters are valid for JavaScript variable names?
您如何 link 使用您的应用程序使用 redis 服务?你不能简单地做 dokku config:set
,如果你做了,你应该取消设置,然后改用 dokku redis:link
。完成后,使用 dokku ps:rebuild APP
重建您的应用程序,您应该设置 process.env.REDIS_URL
。
在我的 express.js 应用程序中使用 redis 作为我的会话存储。我有问题。将它们缩小到连接问题。
如何从 express.js 应用程序中访问 docker 环境变量?我正在使用 dokku-redis。
它报告说环境变量是在链接的应用程序上自动设置的...我已经链接了我的应用程序。 运行 dokku redis:info foo 显示所有链接。我正在尝试拉入 REDIS_URL
谢谢,罗布
https://github.com/dokku/dokku-redis
------------
a redis service can be linked to a
container this will use native docker
links via the docker-options plugin
here we link it to our 'playground' app
NOTE: this will restart your app
dokku redis:link lolipop playground
the following environment variables will be set automatically by docker (not on the app itself, so they won’t be listed when calling dokku config)
DOKKU_REDIS_LOLIPOP_NAME=/lolipop/DATABASE
DOKKU_REDIS_LOLIPOP_PORT=tcp://172.17.0.1:6379
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP=tcp://172.17.0.1:6379
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_PROTO=tcp
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_PORT=6379
DOKKU_REDIS_LOLIPOP_PORT_6379_TCP_ADDR=172.17.0.1
and the following will be set on the linked application by default
REDIS_URL=redis://lolipop:SOME_PASSWORD@dokku-redis-lolipop:6379
NOTE: the host exposed here only works internally in docker containers. If
you want your container to be reachable from outside, you should use 'expose'.
------------------------------
编辑 - 抱歉,我忘记补充说我已经尝试过了 process.env
您可以通过 process.env
访问环境变量,如下所示:
console.log(process.env["DOKKU_REDIS_LOLIPOP_NAME"]);
console.log(process.env["DOKKU_REDIS_LOLIPOP_PORT"]);
console.log(process.env["REDIS_URL"]);
只要对象中的键不损害变量命名约定,您也可以像这样访问它们:
console.log(process.env.REDIS_URL);
关于 javascript 变量命名规则的更多信息:What characters are valid for JavaScript variable names?
您如何 link 使用您的应用程序使用 redis 服务?你不能简单地做 dokku config:set
,如果你做了,你应该取消设置,然后改用 dokku redis:link
。完成后,使用 dokku ps:rebuild APP
重建您的应用程序,您应该设置 process.env.REDIS_URL
。