如何构建用于连接数据库 (8080) 和超集的 SQLAlchemy URI?

How do I frame the SQLAlchemy URI for connecting the Database(8080) and Superset?

使用命令

拉取MySQL图像
docker pull mysql
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

然后在我的根目录中为 mysql

创建了一个 stack.yml 文件
stack.yml :
version: '3.1'

services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

最后组合起来。

docker-compose -f stack.yml up (after making the stack.yml file)

停止后 运行 我访问了 localhost:8080 页面并加载了 mysql 数据库登录页面。

超集设置

git clone https://github.com/apache/incubator-superset.git
cd incubator-superset
docker-compose up

访问了 localhost:8088 页上的超集。

如何构造用于连接数据库和超集的 SQLAlchemy URI?

您可以单独访问这两个应用程序,因为它具有不同的桥接网络。但是当涉及到相互连接时,您必须通过同一网络为两个应用程序进行连接。 incubator-superset_default 上的超集已经 运行 和 默认网桥 上的 MySQL 运行。

此处测试stack.yaml

version: '3.7'

services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: sample
    networks:
      - proxynet

networks:
   proxynet:
      name: incubator-superset_default

注意: 作为自定义网络所以使用可以使用服务容器名称或者容器IP地址如下

mysql://root:sample@mysql/mysql
mysql://root:sample@172.19.0.5/mysql