我们有一个将MySQL作为数据库的Rails应用程序。 db
的docker-compose.yml
部分看起来像
db:
image: mysql
env_file:
- ma.env
volumes:
- ./dump-db:/docker-entrypoint-initdb.d
- ./my.cnf:/etc/mysql/my.cnf
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_HOST=
在
./dump-db
文件夹下,实际上是我们数据库的sql-dump。问题是,每次运行
docker-compose up
时,我们都需要加载正确的转储。 MySQL docker镜像以这种方式工作,它将数据存储在主机上,因此您的db-service不是无状态的。我们需要的是
db
服务放弃了在docker-compose up
之前运行的所有更改,并从该确切转储重新开始。 最佳答案
解决了
实际上,以上观点使我对RTM有一些见解,
它提到
/var/lib/mysql
应该安装在主机上。 docker-compose up --force-recreate db