From 0c12369084d75af16fb1d37da9aaab5952c37b24 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Mon, 15 Apr 2024 10:23:32 -0700 Subject: [PATCH] fix: support docker/.env-local for docker-compose (#28039) --- .gitignore | 1 - docker-compose-image-tag.yml | 40 ++++++------- docker-compose-non-dev.yml | 40 ++++++------- docker-compose.yml | 56 +++++++++---------- ...stalling-superset-using-docker-compose.mdx | 8 +++ 5 files changed, 76 insertions(+), 69 deletions(-) diff --git a/.gitignore b/.gitignore index bbfc640c9acda..02657eb0fa988 100644 --- a/.gitignore +++ b/.gitignore @@ -110,7 +110,6 @@ release.json messages.mo docker/requirements-local.txt -docker/.env-local cache/ docker/*local* diff --git a/docker-compose-image-tag.yml b/docker-compose-image-tag.yml index 6c017ef75e757..4a939c7790822 100644 --- a/docker-compose-image-tag.yml +++ b/docker-compose-image-tag.yml @@ -34,10 +34,10 @@ services: db: env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false image: postgres:15 container_name: superset_db restart: unless-stopped @@ -47,10 +47,10 @@ services: superset: env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false image: *superset-image container_name: superset_app command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"] @@ -66,10 +66,10 @@ services: container_name: superset_init command: ["/app/docker/docker-init.sh"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false depends_on: *superset-depends-on user: "root" volumes: *superset-volumes @@ -81,10 +81,10 @@ services: container_name: superset_worker command: ["/app/docker/docker-bootstrap.sh", "worker"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false restart: unless-stopped depends_on: *superset-depends-on user: "root" @@ -101,10 +101,10 @@ services: container_name: superset_worker_beat command: ["/app/docker/docker-bootstrap.sh", "beat"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false restart: unless-stopped depends_on: *superset-depends-on user: "root" diff --git a/docker-compose-non-dev.yml b/docker-compose-non-dev.yml index 78d8cb9c35130..f0b4cccd32334 100644 --- a/docker-compose-non-dev.yml +++ b/docker-compose-non-dev.yml @@ -39,10 +39,10 @@ services: db: env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false image: postgres:15 container_name: superset_db restart: unless-stopped @@ -52,10 +52,10 @@ services: superset: env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false build: <<: *common-build container_name: superset_app @@ -73,10 +73,10 @@ services: <<: *common-build command: ["/app/docker/docker-init.sh"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false depends_on: *superset-depends-on user: "root" volumes: *superset-volumes @@ -89,10 +89,10 @@ services: container_name: superset_worker command: ["/app/docker/docker-bootstrap.sh", "worker"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false restart: unless-stopped depends_on: *superset-depends-on user: "root" @@ -110,10 +110,10 @@ services: container_name: superset_worker_beat command: ["/app/docker/docker-bootstrap.sh", "beat"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false restart: unless-stopped depends_on: *superset-depends-on user: "root" diff --git a/docker-compose.yml b/docker-compose.yml index 6822a90e05bbc..8c897ef00240e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,10 +55,10 @@ services: db: env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false image: postgres:15 container_name: superset_db restart: unless-stopped @@ -70,10 +70,10 @@ services: superset: env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false build: <<: *common-build container_name: superset_app @@ -125,10 +125,10 @@ services: container_name: superset_init command: ["/app/docker/docker-init.sh"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false depends_on: *superset-depends-on user: *superset-user volumes: *superset-volumes @@ -146,10 +146,10 @@ services: container_name: superset_node command: ["/app/docker/docker-frontend.sh"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false depends_on: *superset-depends-on volumes: *superset-volumes @@ -159,10 +159,10 @@ services: container_name: superset_worker command: ["/app/docker/docker-bootstrap.sh", "worker"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false restart: unless-stopped depends_on: *superset-depends-on user: *superset-user @@ -181,10 +181,10 @@ services: container_name: superset_worker_beat command: ["/app/docker/docker-bootstrap.sh", "beat"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false restart: unless-stopped depends_on: *superset-depends-on user: *superset-user @@ -198,10 +198,10 @@ services: container_name: superset_tests_worker command: ["/app/docker/docker-bootstrap.sh", "worker"] env_file: - # defaults - - docker/.env - # gitignored overrides - - docker/.env-local + - path: docker/.env # default + required: true + - path: docker/.env-local # optional override + required: false environment: DATABASE_HOST: localhost DATABASE_DB: test diff --git a/docs/docs/installation/installing-superset-using-docker-compose.mdx b/docs/docs/installation/installing-superset-using-docker-compose.mdx index 4193a1f0fd474..a6516f378f71f 100644 --- a/docs/docs/installation/installing-superset-using-docker-compose.mdx +++ b/docs/docs/installation/installing-superset-using-docker-compose.mdx @@ -112,6 +112,7 @@ with docker compose will store that data in a PostgreSQL database contained in a [volume](https://docs.docker.com/storage/volumes/), which is not backed up. Again **DO NOT USE THIS FOR PRODUCTION** + ::: You should see a wall of logging output from the containers being launched on your machine. Once @@ -137,6 +138,13 @@ are helpful for learning and testing out Superset but unnecessary for experience production deployments. The loading process can sometimes take a few minutes and a good amount of CPU, so you may want to disable it on a resource-constrained device. +For more advanced or dynamic configurations that are typically managed in a `superset_config.py` file +located in your `PYTHONPATH`, note that it can be done by providing a +`docker/pythonpath_dev/superset_config_docker.py` that will be ignored by git +(preventing you to commit/push your local configuration back to the repository). +The mechanics of this are in `docker/pythonpath_dev/superset_config.py` where you can see +that the logic runs a `from superset_config_docker import *` + :::note Users often want to connect to other databases from Superset. Currently, the easiest way to