本地开发最烦的就是环境不一致。用一份 docker-compose.yml 把依赖服务都声明出来,一条命令就能拉起整套环境。
目录结构
先约定一个简单的项目结构:应用代码放在 app/,编排文件放根目录。
compose 文件
services:
web:
build: ./app
ports:
- "8080:8080"
depends_on:
- db
- cache
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- dbdata:/var/lib/mysql
cache:
image: redis:7
volumes:
dbdata:常见坑
- 端口冲突:宿主已被占用时把
8080:8080换成8090:8080。 - 数据卷:用命名卷持久化数据库,别用匿名卷,否则
down后数据就没了。