jupyter-server/jupyter-scheduler

PostgreSql Database Configuration

Closed this issue ยท 4 comments

Hello guys,

I am trying to setup a Dockerfile with jupyter-scheduler that relies on the postgres to store the jobs configurations.
I am running it on an AWS ECS/Fargate, so, I'll be recreating the container after each update/upgrade/patch, so, I don't want to configure jobs again every time it occurs.

How can I store the db_url on the environment variable, or, at least, a configuration file?

I can't find anywhere in the docs.

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! ๐Ÿค—

If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
welcome
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! ๐Ÿ‘‹

Welcome to the Jupyter community! ๐ŸŽ‰

Hello @iquirino.

You can configure the server extension via Jupyter Server configuration file. Here's a link to Jupyter Server config docs: https://jupyter-server.readthedocs.io/en/latest/other/full-config.html#config-file-and-command-line-options (in this case you would want to add c.SchedulerApp.db_url= to it).

I've opened an issue #499 to make this more clear.

Closing this as resolved. Please feel free to follow-up if needed.

Sure, at the first time I tried to use c.SchedulerApp it raised an error, so, I though it was on the wrong place and can't find where to put the config.

About the environment variables, I was able to put into python config code:

import os

#....

if 'SCHEDULER_DB_HOST' in os.environ:
    scheduler_db_host = os.environ['SCHEDULER_DB_HOST']
    scheduler_db_database = os.environ['SCHEDULER_DB_DATABASE']
    scheduler_db_port = int(os.environ['SCHEDULER_DB_PORT'])
    scheduler_db_user = os.environ['SCHEDULER_DB_USER']
    scheduler_db_pass = os.environ['SCHEDULER_DB_PASS']
    c.SchedulerApp.db_url=f"postgresql://{scheduler_db_user}:{scheduler_db_pass}@{scheduler_db_host}:{scheduler_db_port}/{scheduler_db_database}"

Thank you for your support. I'm new on python and notebooks.