/ tests / db / compose.yml
compose.yml
  1  services:
  2    base:
  3      build:
  4        context: .
  5      volumes:
  6        - ${PWD}:/mlflow/home
  7      working_dir: /mlflow/home
  8      entrypoint: /mlflow/home/tests/db/entrypoint.sh
  9      command: pytest tests/db
 10      environment:
 11        DISABLE_RESET_MLFLOW_URI_FIXTURE: "true"
 12  
 13    postgresql:
 14      image: postgres@sha256:c1f0abd909b477d6088c72e4cd6eb01ea525344caca1b58689ae884204369502
 15      restart: always
 16      environment:
 17        POSTGRES_DB: mlflowdb
 18        POSTGRES_USER: mlflowuser
 19        POSTGRES_PASSWORD: mlflowpassword
 20  
 21    mlflow-postgresql:
 22      depends_on:
 23        - postgresql
 24      extends:
 25        service: base
 26      environment:
 27        MLFLOW_TRACKING_URI: postgresql://mlflowuser:mlflowpassword@postgresql:5432/mlflowdb
 28        INSTALL_MLFLOW_FROM_REPO: true
 29  
 30    migration-postgresql:
 31      depends_on:
 32        - postgresql
 33      extends:
 34        service: base
 35      environment:
 36        MLFLOW_TRACKING_URI: postgresql://mlflowuser:mlflowpassword@postgresql:5432/mlflowdb
 37      command: tests/db/check_migration.sh
 38  
 39    mysql:
 40      image: mysql@sha256:569c4128dfa625ac2ac62cdd8af588a3a6a60a049d1a8d8f0fac95880ecdbbe5
 41      restart: always
 42      environment:
 43        MYSQL_ROOT_PASSWORD: root-password
 44        MYSQL_DATABASE: mlflowdb
 45        MYSQL_USER: mlflowuser
 46        MYSQL_PASSWORD: mlflowpassword
 47      command: --log-bin-trust-function-creators=1
 48  
 49    mlflow-mysql:
 50      extends:
 51        service: base
 52      depends_on:
 53        - mysql
 54      environment:
 55        MLFLOW_TRACKING_URI: mysql://mlflowuser:mlflowpassword@mysql:3306/mlflowdb?charset=utf8mb4
 56        INSTALL_MLFLOW_FROM_REPO: true
 57  
 58    migration-mysql:
 59      extends:
 60        service: base
 61      depends_on:
 62        - mysql
 63      environment:
 64        MLFLOW_TRACKING_URI: mysql://mlflowuser:mlflowpassword@mysql:3306/mlflowdb?charset=utf8mb4
 65      command: tests/db/check_migration.sh
 66  
 67    mssql:
 68      image: mcr.microsoft.com/mssql/server@sha256:54b23ca766287dab5f6f55162923325f07cdec6ccb42108f37c55c87e7688ebd
 69      restart: always
 70      environment:
 71        ACCEPT_EULA: Y
 72        SA_PASSWORD: "1Secure*Password1"
 73  
 74    mlflow-mssql:
 75      depends_on:
 76        - mssql
 77      extends:
 78        service: base
 79      platform: linux/amd64
 80      build:
 81        context: .
 82        dockerfile: Dockerfile.mssql
 83      environment:
 84        MLFLOW_TRACKING_URI: mssql+pyodbc://mlflowuser:Mlfl*wpassword1@mssql/mlflowdb?driver=ODBC+Driver+17+for+SQL+Server
 85        INSTALL_MLFLOW_FROM_REPO: true
 86  
 87    migration-mssql:
 88      depends_on:
 89        - mssql
 90      extends:
 91        service: base
 92      platform: linux/amd64
 93      build:
 94        context: .
 95        dockerfile: Dockerfile.mssql
 96      environment:
 97        # We could try using ODBC Driver 18 and append `LongAsMax=Yes` to fix error for sqlalchemy<2.0:
 98        # [ODBC Driver 17 for SQL Server][SQL Server]The data types varchar and ntext are incompatible in the equal to operator
 99        # https://docs.sqlalchemy.org/en/20/dialects/mssql.html#avoiding-sending-large-string-parameters-as-text-ntext
100        MLFLOW_TRACKING_URI: mssql+pyodbc://mlflowuser:Mlfl*wpassword1@mssql/mlflowdb?driver=ODBC+Driver+17+for+SQL+Server
101      command: tests/db/check_migration.sh
102  
103    mlflow-sqlite:
104      extends:
105        service: base
106      environment:
107        MLFLOW_TRACKING_URI: "sqlite:////tmp/mlflowdb"
108        INSTALL_MLFLOW_FROM_REPO: true
109  
110    migration-sqlite:
111      extends:
112        service: base
113      environment:
114        MLFLOW_TRACKING_URI: "sqlite:////tmp/mlflowdb"
115      command: tests/db/check_migration.sh