我正在尝试设置Apache Superset。
我想从Docker中运行的超集示例访问主机上运行的Postgres和Redis服务。
(我不想为db和redis运行dockers,因为我已经在应用程序中安装了这些服务)。
我在超集文档中看到以下内容:
- 注意:用户经常希望从超集连接到其他数据库。目前,最简单的方法是修改docker-compose-non-dev.yml文件,并将您的数据库添加为其他服务所依赖的服务(通过x-superset-depends-on)。*
在这里我对如何配置yaml文件一无所知。我对docker还是个新手。有人能指导我吗?这里是docker-compose-non-dev.yml的yaml文件服务部分。
redis:
image: redis:7
container_name: superset_cache
restart: unless-stopped
volumes:
- redis:/data
db:
env_file: docker/.env-non-dev
image: postgres:14
container_name: superset_db
restart: unless-stopped
volumes:
- db_home:/var/lib/postgresql/data```
1条答案
按热度按时间xwbd5t1u1#
如果我没理解错的话你要做两件事:
1.对这些组件使用现有服务
只需确保它们可以从你的超集docker容器访问,然后在
superset_config.py
或superset_config_docker.py
中指定这些资源的路径,这可能是你设置其他配置选项的地方。例如,要指向你的Postgres服务作为后端数据库,请指定:其中path是Postgres示例的URL或IP地址。对于Redis,这不是很清楚,但我认为你可以在配置文件中使用
REDIS_HOST=
设置该位置。你可以使用.env
文件来存储这些字符串,而不是直接将它们放在配置文件中。1.不运行不必要的容器
您应该能够删除您的帖子中的容器规范,并将它们从docker-compose文件顶部的
x-superset-depends-on: &superset-depends-on
列表中删除。