From 18e70b5f03447197ad9be190923492cbcbc0e7a6 Mon Sep 17 00:00:00 2001 From: "liweiliang0905@gmail.com" Date: Fri, 23 Jan 2026 17:59:00 +0800 Subject: [PATCH] =?UTF-8?q?config:=20=E6=B7=BB=E5=8A=A0=20MySQL=20Docker?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 10 ++++++++++ docker-compose.yml | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index d83af27..7c2bf3c 100644 --- a/.env.example +++ b/.env.example @@ -15,6 +15,16 @@ # 环境标识(development | production) ENVIRONMENT=development +# ============================================ +# MySQL 配置 +# ============================================ +MYSQL_HOST=localhost +MYSQL_PORT=3306 +MYSQL_USER=vitals +MYSQL_PASSWORD=your_password_here +MYSQL_DATABASE=vitals +MYSQL_ROOT_PASSWORD=rootpassword + # ============================================ # 管理员账户(首次启动时自动创建) # ============================================ diff --git a/docker-compose.yml b/docker-compose.yml index 55055ec..bcc2141 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,20 +3,55 @@ # 生产环境请使用: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d services: + mysql: + image: mysql:8.0 + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword} + MYSQL_DATABASE: ${MYSQL_DATABASE:-vitals} + MYSQL_USER: ${MYSQL_USER:-vitals} + MYSQL_PASSWORD: ${MYSQL_PASSWORD:-vitalspassword} + volumes: + - mysql_data:/var/lib/mysql + ports: + - "3306:3306" + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + interval: 10s + timeout: 5s + retries: 5 + vitals: build: . ports: - "8888:8080" volumes: - ./data:/app/data - env_file: - - .env.local + depends_on: + mysql: + condition: service_healthy environment: # 环境标识 - ENVIRONMENT=${ENVIRONMENT:-development} + # MySQL 配置 + - MYSQL_HOST=mysql + - MYSQL_PORT=3306 + - MYSQL_USER=${MYSQL_USER:-vitals} + - MYSQL_PASSWORD=${MYSQL_PASSWORD:-vitalspassword} + - MYSQL_DATABASE=${MYSQL_DATABASE:-vitals} + # 管理员账户(首次启动时创建) + - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} + - ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme123} + # JWT 密钥(请使用随机字符串) + - JWT_SECRET=${JWT_SECRET:-vitals-secret-key-change-in-production} + # AI 食物识别(可选) + - DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY:-} + - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-} restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/today"] interval: 30s timeout: 10s retries: 3 + +volumes: + mysql_data: