Docker-compose initialize DB

我有一个docker-compose文件

version: '3.7'

services:        
  db:
      image: mysql:latest
      container_name: mysql
      restart: always
      environment:
        MYSQL_ROOT_PASSWORD: 12345
      volumes:
        - ./docker/db:/docker-entrypoint-initdb.d
      ports:
        - "3306:3306"

以及用于初始化数据库的MySQL脚本。

CREATE DATABASE `aaa`;
USE `aaa`;


CREATE TABLE `building` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) NOT NULL,
  `start_date` date DEFAULT NULL,
  `end_date` date DEFAULT NULL,
  `open` tinyint(4) DEFAULT NULL,
  `address_type` varchar(30) DEFAULT NULL,
  `address_name` varchar(45) DEFAULT NULL,
  `address_number` varchar(45) DEFAULT NULL,
  `cap` char(5) DEFAULT NULL,
  `city` varchar(45) DEFAULT NULL,
  `province` varchar(45) DEFAULT NULL,
  `state` varchar(45) DEFAULT NULL,
  `req_amount` float DEFAULT NULL,
  PRIMARY KEY (`id`)
);

实际上Docker忽略了文件INIT_DB.SQL,如下所述:

mysql | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/DB_INIT.SQL

我想用这个文件初始化数据库。我也尝试过:tomcat + mysql + war using docker-compose.yml。

错误在哪里?

转载请注明出处:http://www.yihangfood.com/article/20230329/1226444.html