gpt4 book ai didi

mysql - 如果我定义一个卷,Docker-compose 将不会启动 MySQL

转载 作者:行者123 更新时间:2023-12-05 07:22:48 26 4
gpt4 key购买 nike

我正在尝试为我的 MySQL 容器创建一个卷,以便数据可以持久保存。因此,在我的 docker-compose 中,我创建了一个存储数据的卷。

这是我的 docker-compose :

version: '3'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: portfolio
ports:
- 80:80
volumes:
- .:/var/www/html
links:
- mysql
environment:
DB_HOST: mysql
DB_DATABASE: blog
DB_USERNAME: blog
DB_PASSWORD: ...
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: blog
MYSQL_USER: blog
MYSQL_PASSWORD: ...
MYSQL_ROOT_PASSWORD: ...
volumes:
- "./db:/var/lib/mysql"

卷在文件末尾定义。不幸的是,这是行不通的。如果我执行 docker container ls 它只显示投资组合容器,如果我执行 docker container ls -a 它会显示我的 MySQL 容器,但它说它在我执行 docker-compose up -d 后立即“退出”,所以显然它已启动但随后立即崩溃或发生其他事情。

如果我删除与 MySQL 卷相关的最后两行,它就可以正常工作。我的容器都启动了,应用程序正常运行。所以基本上导致容器崩溃的是体积,所以也许我没有正确定义它。你怎么看?

最佳答案

我在我的 Windows 系统上发现,虽然我的本地卷(即 ./db)看​​起来是空的,但实际上不是。我结束了从 bash shell 运行 ls -la 的同一文件夹,它在其中显示了一个 .sock 文件。一旦我删除了 (rm -f *.sock) 并运行 docker-compose up --build 它似乎正确地安装了卷

关于mysql - 如果我定义一个卷,Docker-compose 将不会启动 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56399269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com