services: base: build: context: . volumes: - ${PWD}:/mlflow/home working_dir: /mlflow/home entrypoint: /mlflow/home/tests/db/entrypoint.sh command: pytest tests/db environment: DISABLE_RESET_MLFLOW_URI_FIXTURE: "true" postgresql: image: postgres@sha256:c1f0abd909b477d6088c72e4cd6eb01ea525344caca1b58689ae884204369502 restart: always environment: POSTGRES_DB: mlflowdb POSTGRES_USER: mlflowuser POSTGRES_PASSWORD: mlflowpassword mlflow-postgresql: depends_on: - postgresql extends: service: base environment: MLFLOW_TRACKING_URI: postgresql://mlflowuser:mlflowpassword@postgresql:5432/mlflowdb INSTALL_MLFLOW_FROM_REPO: true migration-postgresql: depends_on: - postgresql extends: service: base environment: MLFLOW_TRACKING_URI: postgresql://mlflowuser:mlflowpassword@postgresql:5432/mlflowdb command: tests/db/check_migration.sh mysql: image: mysql@sha256:569c4128dfa625ac2ac62cdd8af588a3a6a60a049d1a8d8f0fac95880ecdbbe5 restart: always environment: MYSQL_ROOT_PASSWORD: root-password MYSQL_DATABASE: mlflowdb MYSQL_USER: mlflowuser MYSQL_PASSWORD: mlflowpassword command: --log-bin-trust-function-creators=1 mlflow-mysql: extends: service: base depends_on: - mysql environment: MLFLOW_TRACKING_URI: mysql://mlflowuser:mlflowpassword@mysql:3306/mlflowdb?charset=utf8mb4 INSTALL_MLFLOW_FROM_REPO: true migration-mysql: extends: service: base depends_on: - mysql environment: MLFLOW_TRACKING_URI: mysql://mlflowuser:mlflowpassword@mysql:3306/mlflowdb?charset=utf8mb4 command: tests/db/check_migration.sh mssql: image: mcr.microsoft.com/mssql/server@sha256:54b23ca766287dab5f6f55162923325f07cdec6ccb42108f37c55c87e7688ebd restart: always environment: ACCEPT_EULA: Y SA_PASSWORD: "1Secure*Password1" mlflow-mssql: depends_on: - mssql extends: service: base platform: linux/amd64 build: context: . dockerfile: Dockerfile.mssql environment: MLFLOW_TRACKING_URI: mssql+pyodbc://mlflowuser:Mlfl*wpassword1@mssql/mlflowdb?driver=ODBC+Driver+17+for+SQL+Server INSTALL_MLFLOW_FROM_REPO: true migration-mssql: depends_on: - mssql extends: service: base platform: linux/amd64 build: context: . dockerfile: Dockerfile.mssql environment: # We could try using ODBC Driver 18 and append `LongAsMax=Yes` to fix error for sqlalchemy<2.0: # [ODBC Driver 17 for SQL Server][SQL Server]The data types varchar and ntext are incompatible in the equal to operator # https://docs.sqlalchemy.org/en/20/dialects/mssql.html#avoiding-sending-large-string-parameters-as-text-ntext MLFLOW_TRACKING_URI: mssql+pyodbc://mlflowuser:Mlfl*wpassword1@mssql/mlflowdb?driver=ODBC+Driver+17+for+SQL+Server command: tests/db/check_migration.sh mlflow-sqlite: extends: service: base environment: MLFLOW_TRACKING_URI: "sqlite:////tmp/mlflowdb" INSTALL_MLFLOW_FROM_REPO: true migration-sqlite: extends: service: base environment: MLFLOW_TRACKING_URI: "sqlite:////tmp/mlflowdb" command: tests/db/check_migration.sh