我试图在 jetty 上托管使用MySQL数据库的应用程序。我正在使用docker compose。我的yml文件如下所示:

version: '2'
volumes:
  data_sql:
services:
medical-mysql:
    image: mysql
    hostname: medical-mysql
    volumes:
     - data_sql:/dbcreation.sql
    environment:
      MYSQL_DATABASE: Medical
      MYSQL_ROOT_PASSWORD: root
      STARTUP_SQL: data_sql
    ports:
    - "3306:3306"
  medical-main:
    build: .
    ports:
     - "8080:8080"
    depends_on:
     - medical-mysql

我有一个dbcreation.sql,它创建db模式,并保存在yml文件夹中。当我运行yml文件时,似乎该文件未运行。

我错过了什么?

最佳答案

只需将.sql文件(dbcreation.sql)放在一个文件夹(即/ mysql_init)中,然后将该文件夹作为卷添加即可,如下所示:

volumes:
  - /mysql_init:/docker-entrypoint-initdb.d

MySQL镜像将在启动时执行/docker-entrypoint-initdb.d中的所有.sql,.sh和.sql.gz文件。

10-07 18:38