From e71437190bf1d33a2a28ca678a9fbb1e2096644d Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 3 May 2026 11:12:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=8E=AF=E5=A2=83docker-compose=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 6 ++ backend/internal/router/admin/dashboard.go | 2 +- docker-compose.prod.yml | 74 ++++++++++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 .env.example create mode 100644 docker-compose.prod.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..a384613 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +MYSQL_ROOT_PASSWORD=your-secure-password +MYSQL_DATABASE=verification_platform +MYSQL_PORT=3306 +REDIS_PORT=6379 +APP_PORT=8080 +JWT_SECRET=your-jwt-secret-change-me diff --git a/backend/internal/router/admin/dashboard.go b/backend/internal/router/admin/dashboard.go index 782c132..f1750dd 100644 --- a/backend/internal/router/admin/dashboard.go +++ b/backend/internal/router/admin/dashboard.go @@ -1,4 +1,4 @@ -package admin +package admin import ( "time" diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..f182a2c --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,74 @@ +services: + mysql: + image: mysql:8.0 + container_name: verify-mysql + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123456} + MYSQL_DATABASE: ${MYSQL_DATABASE:-verification_platform} + MYSQL_CHARACTER_SET_SERVER: utf8mb4 + MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci + ports: + - "${MYSQL_PORT:-3306}:3306" + volumes: + - mysql_data:/var/lib/mysql + networks: + - verify-network + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7.0-alpine + container_name: verify-redis + restart: unless-stopped + command: redis-server --appendonly yes + ports: + - "${REDIS_PORT:-6379}:6379" + volumes: + - redis_data:/data + networks: + - verify-network + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + + app: + image: ghcr.io/cmakecpp/verify:main + container_name: verify-app + restart: unless-stopped + environment: + - APP_ENV=production + - APP_PORT=8080 + - APP_JWT_SECRET=${JWT_SECRET:-your-jwt-secret-change-me} + - DATABASE_HOST=mysql + - DATABASE_PORT=3306 + - DATABASE_NAME=${MYSQL_DATABASE:-verification_platform} + - DATABASE_USERNAME=root + - DATABASE_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456} + - REDIS_HOST=redis + - REDIS_PORT=6379 + ports: + - "${APP_PORT:-8080}:8080" + volumes: + - uploads:/app/uploads + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + networks: + - verify-network + +volumes: + mysql_data: + redis_data: + uploads: + +networks: + verify-network: + driver: bridge