fix Deployment

This commit is contained in:
2025-07-28 02:07:53 +08:00
parent 357639462a
commit 642ca4f859
2 changed files with 33 additions and 41 deletions

View File

@@ -1,11 +1,15 @@
# 第一阶段:构建阶段 # 第一阶段:构建阶段
FROM golang:1.23.4-alpine AS builder FROM golang:1.23.4-alpine AS builder
# 设置Go代理和Alpine镜像源
ENV GOPROXY https://goproxy.cn,direct
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 设置工作目录 # 设置工作目录
WORKDIR /app WORKDIR /app
# 安装必要的包 # 安装必要的包
RUN apk add --no-cache git ca-certificates tzdata RUN apk add --no-cache git tzdata
# 复制模块文件 # 复制模块文件
COPY go.mod go.sum ./ COPY go.mod go.sum ./
@@ -30,9 +34,11 @@ RUN BUILD_TIME=${BUILD_TIME:-$(date -u +"%Y-%m-%dT%H:%M:%SZ")} && \
# 第二阶段:运行阶段 # 第二阶段:运行阶段
FROM alpine:3.19 FROM alpine:3.19
# 设置Alpine镜像源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装必要的包 # 安装必要的包
RUN apk --no-cache add ca-certificates tzdata curl && \ RUN apk --no-cache add tzdata curl
update-ca-certificates
# 设置时区 # 设置时区
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai

View File

@@ -8,9 +8,9 @@ services:
environment: environment:
TZ: Asia/Shanghai TZ: Asia/Shanghai
PGTZ: Asia/Shanghai PGTZ: Asia/Shanghai
POSTGRES_DB: ${DB_NAME:-tyapi_prod} POSTGRES_DB: tyapi
POSTGRES_USER: ${DB_USER:-tyapi_user} POSTGRES_USER: tyapi_user
POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_PASSWORD: Pg9mX4kL8nW2rT5y
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C" POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
# 性能优化配置 # 性能优化配置
POSTGRES_SHARED_PRELOAD_LIBRARIES: pg_stat_statements POSTGRES_SHARED_PRELOAD_LIBRARIES: pg_stat_statements
@@ -20,7 +20,7 @@ services:
networks: networks:
- tyapi-network - tyapi-network
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-tyapi_user}"] test: ["CMD-SHELL", "pg_isready -U tyapi_user"]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 5 retries: 5
@@ -36,7 +36,7 @@ services:
cpus: "0.5" cpus: "0.5"
# 生产环境暴露数据库端口到主机 # 生产环境暴露数据库端口到主机
ports: ports:
- "${DB_PORT:-25010}:5432" - "25010:5432"
# Redis 缓存 (生产环境) # Redis 缓存 (生产环境)
redis: redis:
@@ -44,29 +44,15 @@ services:
container_name: tyapi-redis-prod container_name: tyapi-redis-prod
environment: environment:
TZ: Asia/Shanghai TZ: Asia/Shanghai
REDIS_PASSWORD: ${REDIS_PASSWORD} REDIS_PASSWORD: ""
volumes: volumes:
- redis_data:/data - redis_data:/data
- ./deployments/docker/redis.conf:/usr/local/etc/redis/redis.conf - ./deployments/docker/redis.conf:/usr/local/etc/redis/redis.conf
command: > command: redis-server /usr/local/etc/redis/redis.conf
sh -c "
if [ ! -z '${REDIS_PASSWORD}' ]; then
redis-server /usr/local/etc/redis/redis.conf --requirepass ${REDIS_PASSWORD}
else
redis-server /usr/local/etc/redis/redis.conf
fi
"
networks: networks:
- tyapi-network - tyapi-network
healthcheck: healthcheck:
test: > test: redis-cli ping
sh -c "
if [ ! -z '${REDIS_PASSWORD}' ]; then
redis-cli -a ${REDIS_PASSWORD} ping
else
redis-cli ping
fi
"
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 5 retries: 5
@@ -89,9 +75,9 @@ services:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
args: args:
VERSION: ${APP_VERSION:-1.0.0} VERSION: 1.0.0
COMMIT: ${GIT_COMMIT:-dev} COMMIT: dev
BUILD_TIME: ${BUILD_TIME} BUILD_TIME: ""
container_name: tyapi-app-prod container_name: tyapi-app-prod
environment: environment:
# 时区配置 # 时区配置
@@ -101,40 +87,40 @@ services:
ENV: production ENV: production
# 服务器配置 # 服务器配置
SERVER_PORT: ${SERVER_PORT:-8080} SERVER_PORT: 8080
SERVER_MODE: release SERVER_MODE: release
# 数据库配置 # 数据库配置
DB_HOST: postgres DB_HOST: postgres
DB_PORT: 5432 DB_PORT: 5432
DB_USER: ${DB_USER:-tyapi_user} DB_USER: tyapi_user
DB_PASSWORD: ${DB_PASSWORD} DB_PASSWORD: Pg9mX4kL8nW2rT5y
DB_NAME: ${DB_NAME:-tyapi_prod} DB_NAME: tyapi
DB_SSLMODE: ${DB_SSLMODE:-require} DB_SSLMODE: require
# Redis配置 # Redis配置
REDIS_HOST: redis REDIS_HOST: redis
REDIS_PORT: 6379 REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD} REDIS_PASSWORD: ""
# JWT配置 # JWT配置
JWT_SECRET: ${JWT_SECRET} JWT_SECRET: JwT8xR4mN9vP2sL7kH3oB6yC1zA5uF0qE9tW
# 监控配置 # 监控配置
TRACING_ENABLED: false TRACING_ENABLED: false
METRICS_ENABLED: false METRICS_ENABLED: false
# 日志配置 # 日志配置
LOG_LEVEL: ${LOG_LEVEL:-info} LOG_LEVEL: warn
LOG_FORMAT: json LOG_FORMAT: json
# 短信配置 # 短信配置
SMS_ACCESS_KEY_ID: ${SMS_ACCESS_KEY_ID} SMS_ACCESS_KEY_ID: LTAI5tKGB3TVJbMHSoZN3yr9
SMS_ACCESS_KEY_SECRET: ${SMS_ACCESS_KEY_SECRET} SMS_ACCESS_KEY_SECRET: OCQ30GWp4yENMjmfOAaagksE18bp65
SMS_SIGN_NAME: ${SMS_SIGN_NAME} SMS_SIGN_NAME: 天远数据
SMS_TEMPLATE_CODE: ${SMS_TEMPLATE_CODE} SMS_TEMPLATE_CODE: SMS_474525324
ports: ports:
- "${APP_PORT:-25000}:8080" - "25000:8080"
volumes: volumes:
- app_logs:/app/logs - app_logs:/app/logs
networks: networks: