【发布时间】:2021-05-14 08:40:36
【问题描述】:
我有一个想要在容器中运行的应用程序,以及一个想要在容器中运行的数据库。我已经像这样实现了数据库部分。
db:
image: mysql:5.7
ports:
- "3306:3306"
command: --init-file /SCHEMA.sql
restart: always
environment:
MYSQL_DATABASE: shapeshop
MYSQL_USER: admin
MYSQL_PASSWORD: admin
MYSQL_ROOT_PASSWORD: root
networks:
- backend
我的数据库的初始架构位于一个名为 SCHEMA.sql 的文件中,该文件与我的 docker-compose 文件位于同一目录中。
我正在使用
命令--init-file
设置数据库的配置。
当我运行 docker-compose up 时,它会因以下错误而失败:
2021-05-14T08:20:59.320203Z 0 [错误] mysqld:找不到文件“/SCHEMA.sql”(错误代码:2 - 没有这样的文件或目录)
我的命令文件指定正确吗?
【问题讨论】:
-
没有
volumes:将host文件映射到容器中,数据库启动是看不到的。您通常会将 SQL 文件挂载到/docker-entrypoint-initdb.d/中,标准的mysql映像启动将为您执行它(仅在容器第一次启动时)。 -
那么这个命令 --init 是否只在容器内的文件系统上工作?我对文档有点困惑。
-
我本打算今天翻阅文档,以获得此类问题的答案.....
标签: mysql docker docker-compose