docker compose mysql,Docker Compose mysql导入.sql

I'm having trouble importing an .sql dump file with docker-compose. I've followed the docs, which apparently will load the .sql file from docker-entrypoint-initdb.d. However, when I run docker-compose up, the sql file is not copied over to the container.

I've tried stopping the containers with -vf flag, but that didn't work either. Am I doing something wrong in my .yml script?

I have dump.sql in the directory database/db-dump/ in the root where my compose file is.

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

解决方案

After many attempts with the volumes setting i found a workaround

I created another image based on mysql with the following in the Dockerfile

FROM mysql:5.6

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

Then removed the volumes from compose and ran the new image

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

This way the dump is always copied over and run on startup

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值