有 docker-compose.yml
services:
web:
build: ./php
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
ports:
- 8080:80
working_dir: ${APP_PATH_CONTAINER}
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: test
volumes:
- ./db:/var/lib/mysql
- ./migr:/usr/data
adminer:
image: adminer
restart: always
ports:
- 6080:8080
3个sql数据库转储存放在migr文件夹中,如何在构建项目时将它们导入到db容器中的数据库中?
这个docker-compose.yml使用数据库的图像
mariadb
。在此图像的页面上,在初始化新实例部分中,它说初始化文件可以放在目录中(支持
/docker-entrypoint-initdb.d
文件扩展名、、、.sh
和)。.sql
.sql.gz
.sql.xz
.sql.zst
将卷挂载行更改
./migr
为挂载到/docker-entrypoint-initdb.d
. 这样,./migr
每次创建新容器时,都会使用目录的内容初始化数据库。那些。连接初始化,最好只有一次,因为 此外,数据已经在数据库中(由于有一个 mount/var/lib/mysql
),在第一次成功初始化后,应该禁用 mount./migr
以避免错误和数据丢失。