我尝试(花费了多个小时)在docker上(本地)运行mysql。我想使用像这样的初始数据库脚本:
CREATE TABLE `language` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lang_name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci;
CREATE TABLE `level` (
我的docker-compose:
version: '3.1'
services:
mysql:
container_name: myflashcards_db
image: mysql:5.7
# command: --init-file /data/application/init.sql
volumes:
- ./init:/docker-entrypoint-initdb.d
- ./mysql_data:/var/lib/mysql
restart: always
ports:
- "33061:3306"
expose:
- 33061
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: masterkey
MYSQL_DATABASE: myflashcards_db
MYSQL_USER: myflashcards_user
MYSQL_PASSWORD: mypassword
# command: --init-file ./init.sql
# command: mysqld --init-file="/tmp/database/init.sql"
# myflashcards-service:
# depends_on:
# - mysql
# build:
# dockerfile: Dockerfile.dev
# context: .
volumes:
mysql-data: {}
之后:
docker-compose up --build
我得到了错误:
2020-04-08 17:59:31 + 00:00 [注意] [入口]: /usr/local/bin/docker-entrypoint.sh:正在运行 /docker-entrypoint-initdb.d/init.sql myflashcards_db | /usr/local/bin/docker-entrypoint.sh:第62行: /docker-entrypoint-initdb.d/init.sql:没有这样的文件或目录
我的init.sql脚本位于init / init.sql中。 docker-compose与我的带有init.sql的init文件夹位于同一位置:
> init/
-init.sql
docker-compose.yml
我尝试了许多解决方案,但没有成功:(。我不想创建一个单独的dockerfile,我想将所有文件都放在一个docker-compose文件中。
第一步,我想测试我的mysql数据库,但看起来我的init.sql没有复制到myflashcards_db容器中