一尘不染

Docker Compose mysql导入.sql

docker

我在使用docker-compose导入.sql转储文件时遇到问题。我已经关注了文档,这些文档显然将从docker-entrypoint-
initdb.d中加载.sql文件。但是,当我运行时docker-compose up,sql文件不会复制到容器中。

我试过用-vfflag 停止容器,但这也不起作用。我的.yml脚本做错了吗?

我的撰写文件所在的根目录中的database / db-dump /目录中有dump.sql。

frontend:
  image: myimage
  ports:
   - "80:80"
  links:
   - mysql
mysql:
  image: mysql
  ports:
   - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: rootpass
    MYSQL_USER: dbuser
    MYSQL_PASSWORD: userpass
    MYSQL_DATABASE: myimage_db
  volumes:
   - ./database/db-dump:/docker-entrypoint-initdb.d

阅读 1018

收藏
2020-06-17

共1个答案

一尘不染

经过多次尝试设置音量后,我找到了解决方法

我在Dockerfile中使用以下内容基于mysql创建了另一个映像

FROM mysql:5.6

ADD dump.sql /docker-entrypoint-initdb.d

然后从组合中删除卷并运行新映像

frontend:
  image: myimage
  ports:
   - "80:80"
  links:
   - mysql
mysql:
  image: mymysql
  ports:
   - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: rootpass
    MYSQL_USER: dbuser
    MYSQL_PASSWORD: userpass
    MYSQL_DATABASE: myimage_db

这样,转储始终被复制并在启动时运行

2020-06-17