mysql - 如果我定义一个卷,Docker-compose 将不会启动 MySQL
问题描述
我正在尝试为我的 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"
卷在文件末尾定义。不幸的是,这行不通。如果我执行 adocker container ls
它只显示投资组合容器,如果我执行 adocker container ls -a
它确实显示我的 MySQL 容器,但它说它在我执行之后立即“退出” docker-compose up -d
,所以显然它已启动但随后立即崩溃或其他什么.
如果我删除与 MySQL 卷相关的最后 2 行,它工作正常。我的容器都启动了,应用程序正常运行。所以基本上导致容器崩溃的原因是音量,所以也许我没有正确定义它。你怎么看 ?
解决方案
推荐阅读
- ssl - gitlabrunner 无法克隆 repo
- python - 类型错误:切片索引必须是整数或 None 或者在第一 IF 行上有一个 __index__ 方法,但对其他任何行都不起作用
- c# - 如何将 XML 反序列化为列表
- python - 检测列表是否在正值之后包含负值的 Pythonic 方法
- ios - 升级 React Native 版本仅在发布版本中导致错误
- r - 复制行 n 次,其中 n 是字符串的值
- c - 如何使用 C 的 GTK4 来获取屏幕的像素?
- asynchronous - 带有while控制器的Jmeter异步进程
- google-sheets - 在复制的工作表模板上维护脚本授权
- react-native - 切换按钮不与 useContext 反应