Hello,
I’m very new to Docker and I’m currently trying to set Redash to use an external PostgreSQL and Redis instead of using the automatically deployed.
Does anyone know how to set it on my Dockerfile ?
Hello,
I’m very new to Docker and I’m currently trying to set Redash to use an external PostgreSQL and Redis instead of using the automatically deployed.
Does anyone know how to set it on my Dockerfile ?
You don’t need to modify the Dockerfile actually. Redash gathers these connection strings from environment variables which are defined in docker-compose.yaml
. You’ll want to edit this file anyway so you don’t spin-up pointless postgres
and redis
containers
Here’s a sample Dockerfile where I connect to a postgres db running on my local machine:
Note I can’t use localhost
here because the docker containers would think this points back into the container, rather than my host. I just changed REDASH_REDIS_URL
and REDASH_DATABASE_URL
and removed the definitions for postgres
and redis
services.
Hope that helps.
# This configuration file is for the **development** setup.
# For a production example please refer to getredash/setup repository on GitHub.
version: "2.2"
x-redash-service: &redash-service
build:
context: .
args:
skip_frontend_build: "true"
volumes:
- .:/app
x-redash-environment: &redash-environment
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://host.docker.internal:6379/0"
REDASH_DATABASE_URL: "postgresql://someuser:somepassword@host.docker.internal/postgres"
REDASH_RATELIMIT_ENABLED: "false"
REDASH_MAIL_DEFAULT_SENDER: "redash@example.com"
REDASH_MAIL_SERVER: "email"
REDASH_ENFORCE_CSRF: "true"
services:
server:
<<: *redash-service
command: dev_server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
- "5678:5678"
environment:
<<: *redash-environment
PYTHONUNBUFFERED: 0
scheduler:
<<: *redash-service
command: dev_scheduler
depends_on:
- server
environment:
<<: *redash-environment
worker:
<<: *redash-service
command: dev_worker
depends_on:
- server
environment:
<<: *redash-environment
PYTHONUNBUFFERED: 0
email:
image: djfarrelly/maildev
ports:
- "1080:80"
restart: unless-stopped
Thank you for your response!
Actually, I have to modify the Dockerfile because I’m not using compose.
I have to do it through build and run.
So they only issue I have is to find a way to point my Redash on the Dockerfile to the external PostgreSQL and Redis.
This solution will be deployed on AWS ECS through Pulumi/Terraform.