docker-compose volume not persisting database



我使用docker-compose up -d启动服务,然后使用docker-compose down停止

问题;我的数据似乎没有持久化;每次都执行"${SQL_INIT}:/docker-entrypoint-initdb.d"

我已经为持久性设置了卷db_datadocker volume ls返回

local     backend_mariadb-data
local     docker_db_data
local     docker_db_logs

这是我的码头管理员撰写的

version: "3"
services:
backend:
container_name: backend
image: backend
restart: always
build: images/backend/
env_file: .env
ports:
- "8000:8000"
depends_on:
- mariadb
networks:
- app_network
mariadb:
container_name: mariadb
image: "mariadb:${MARIADB_VERSION}"
restart: 'always'
env_file: .env
volumes:
- "${SQL_INIT}:/docker-entrypoint-initdb.d"
- "db_data:${MARIADB_DATA_DIR}"
- "db_logs:${MARIADB_LOG_DIR}"
environment:
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
MYSQL_DATABASE: "${MYSQL_DATABASE}"
MYSQL_USER: "${MYSQL_USER}"
MYSQL_PASSWORD: "${MYSQL_PASSWORD}"
ports:
- "3306:3306"
networks:
- app_network

volumes:
db_data:
db_logs:
networks:
app_network:

带有.env文件

MARIADB_VERSION="latest"
MARIADB_DATA_DIR="/var/database/mariadb"
MARIADB_LOG_DIR="/var/logs/mariadb"
MYSQL_DATABASE="app"
MYSQL_USER="app"
MYSQL_PASSWORD="password"
MYSQL_ROOT_PASSWORD="password"
SQL_INIT="./database/dev"

删除env文件中的引号。Docker Compose将它们视为价值的一部分。

参见最后一个项目符号

此外,数据的默认路径是/var/lib/mysql,日志记录的默认路径为/var/log/mysql(但默认禁用(

最新更新