diff --git a/Dockerfile b/Dockerfile index 123c5cd..7212905 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,9 +47,9 @@ FROM eclipse-temurin:17-jre-jammy WORKDIR /app -# 安装 Nginx 和必要的工具 +# 安装 Nginx 和必要的工具(包含时区数据) RUN apt-get update && \ - apt-get install -y nginx curl && \ + apt-get install -y nginx curl tzdata && \ rm -rf /var/lib/apt/lists/* && \ rm -rf /etc/nginx/sites-enabled/default diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 1e2b4fb..25a8bef 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -9,6 +9,7 @@ services: ports: - "${SERVER_PORT:-8000}:8000" environment: + - TZ=${TZ:-Asia/Shanghai} - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod} - DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true} - DB_USERNAME=${DB_USERNAME:-root} @@ -16,6 +17,8 @@ services: - SERVER_PORT=8000 - JWT_SECRET=${JWT_SECRET:-change-me-in-production} - ADMIN_RESET_PASSWORD_KEY=${ADMIN_RESET_PASSWORD_KEY:-change-me-in-production} + volumes: + - /etc/localtime:/etc/localtime:ro depends_on: mysql: condition: service_healthy @@ -29,12 +32,14 @@ services: ports: - "${MYSQL_PORT:-3306}:3306" environment: + - TZ=${TZ:-Asia/Shanghai} - MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword} - MYSQL_DATABASE=polyhermes - MYSQL_CHARACTER_SET_SERVER=utf8mb4 - MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci volumes: - mysql-data:/var/lib/mysql + - /etc/localtime:/etc/localtime:ro healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_PASSWORD:-rootpassword}"] interval: 10s diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index fd616ef..fd82806 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -19,6 +19,7 @@ services: ports: - "${SERVER_PORT:-80}:80" environment: + - TZ=${TZ:-Asia/Shanghai} - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod} - DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true} - DB_USERNAME=${DB_USERNAME:-root} @@ -33,6 +34,8 @@ services: # 可选值:TRACE, DEBUG, INFO, WARN, ERROR, OFF - LOG_LEVEL_ROOT=${LOG_LEVEL_ROOT:-WARN} - LOG_LEVEL_APP=${LOG_LEVEL_APP:-INFO} + volumes: + - /etc/localtime:/etc/localtime:ro depends_on: mysql: condition: service_healthy @@ -46,12 +49,14 @@ services: ports: - "${MYSQL_PORT:-3307}:3306" environment: + - TZ=${TZ:-Asia/Shanghai} - MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword} - MYSQL_DATABASE=polyhermes - MYSQL_CHARACTER_SET_SERVER=utf8mb4 - MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci volumes: - mysql-data:/var/lib/mysql + - /etc/localtime:/etc/localtime:ro healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_PASSWORD:-rootpassword}"] interval: 10s diff --git a/docker-compose.yml b/docker-compose.yml index a1b4706..efe1fd8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,6 +17,7 @@ services: ports: - "${SERVER_PORT:-80}:80" environment: + - TZ=${TZ:-Asia/Shanghai} - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod} - DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true} - DB_USERNAME=${DB_USERNAME:-root} @@ -31,6 +32,8 @@ services: # 可选值:TRACE, DEBUG, INFO, WARN, ERROR, OFF - LOG_LEVEL_ROOT=${LOG_LEVEL_ROOT:-WARN} - LOG_LEVEL_APP=${LOG_LEVEL_APP:-INFO} + volumes: + - /etc/localtime:/etc/localtime:ro depends_on: mysql: condition: service_healthy @@ -44,12 +47,14 @@ services: ports: - "${MYSQL_PORT:-3307}:3306" environment: + - TZ=${TZ:-Asia/Shanghai} - MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword} - MYSQL_DATABASE=polyhermes - MYSQL_CHARACTER_SET_SERVER=utf8mb4 - MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci volumes: - mysql-data:/var/lib/mysql + - /etc/localtime:/etc/localtime:ro healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_PASSWORD:-rootpassword}"] interval: 10s