我使用docker-compose up -d
启动服务,然后使用docker-compose down
停止
问题;我的数据似乎没有持久化;每次都执行"${SQL_INIT}:/docker-entrypoint-initdb.d"
我已经为持久性设置了卷db_data
;docker 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
(但默认禁用(