视频保存
This commit is contained in:
@@ -22,8 +22,8 @@ RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /build/echochat ./cmd/
|
||||
# --- 第二阶段:运行 ---
|
||||
FROM alpine:3.19
|
||||
|
||||
# 安装运行时依赖(时区数据 + CA 证书)
|
||||
RUN apk add --no-cache ca-certificates tzdata
|
||||
# 安装运行时依赖(时区数据 + CA 证书 + 录制 WebM→MP4 转码所需 ffmpeg)
|
||||
RUN apk add --no-cache ca-certificates tzdata ffmpeg
|
||||
|
||||
# 设置时区为上海
|
||||
ENV TZ=Asia/Shanghai
|
||||
|
||||
@@ -83,5 +83,5 @@ meeting:
|
||||
# 生产部署请通过环境变量 ECHOCHAT_MEETING_INTERNAL_WEBHOOK_SECRET 覆盖(viper.AutomaticEnv 已开启)
|
||||
internal_webhook_secret: internal-webhook-12xqs
|
||||
recording_transcode_enabled: true
|
||||
recording_transcode_ffmpeg_path: /home/ykf/jenkins/yuyin/ffmpeg/ffmpeg-7.0.2-amd64-static/ffmpeg
|
||||
recording_transcode_ffmpeg_path: ffmpeg
|
||||
recording_transcode_timeout_seconds: 600
|
||||
|
||||
@@ -3,6 +3,7 @@ package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
@@ -43,6 +44,12 @@ func (l *zapGormLogger) Trace(ctx context.Context, begin time.Time, fc func() (s
|
||||
zap.String("sql", sql),
|
||||
}
|
||||
if err != nil {
|
||||
// gorm.ErrRecordNotFound 在业务侧大量被用作"是否存在"判定(GetByXxx 返回 nil, nil)
|
||||
// 没必要在 SQL 层把它当 ERROR 刷出来,否则会误触告警;保持原 fields 在 Debug 层级即可排障
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
logs.Debug(ctx, "gorm.trace", "SQL未命中(record not found)", fields...)
|
||||
return
|
||||
}
|
||||
fields = append(fields, zap.Error(err))
|
||||
logs.Error(ctx, "gorm.trace", "SQL执行失败", fields...)
|
||||
return
|
||||
|
||||
@@ -69,7 +69,10 @@ services:
|
||||
ECHOCHAT_MEDIA_SERVER_INTERNAL_TOKEN: ${MEDIA_INTERNAL_TOKEN:-}
|
||||
# media-server 失败回调共享密钥:与 media-server 服务的 INTERNAL_WEBHOOK_SECRET 保持一致
|
||||
# 未配置时 go-service 会拒绝所有 webhook(Forbidden),录制失败状态将无法及时落 failed
|
||||
INTERNAL_WEBHOOK_SECRET: ${INTERNAL_WEBHOOK_SECRET:-internal-webhook-secret-change-me}
|
||||
ECHOCHAT_MEETING_INTERNAL_WEBHOOK_SECRET: ${INTERNAL_WEBHOOK_SECRET:-internal-webhook-12xqs}
|
||||
ECHOCHAT_MEETING_RECORDING_TRANSCODE_ENABLED: ${RECORDING_TRANSCODE_ENABLED:-true}
|
||||
ECHOCHAT_MEETING_RECORDING_TRANSCODE_FFMPEG_PATH: ${RECORDING_TRANSCODE_FFMPEG_PATH:-ffmpeg}
|
||||
ECHOCHAT_MEETING_RECORDING_TRANSCODE_TIMEOUT_SECONDS: ${RECORDING_TRANSCODE_TIMEOUT_SECONDS:-600}
|
||||
ports:
|
||||
- "${GO_SERVICE_PORT:-8085}:8085"
|
||||
depends_on:
|
||||
@@ -81,6 +84,9 @@ services:
|
||||
condition: service_healthy
|
||||
media-server:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
# 与 media-server 使用同一个 host 目录,确保容器部署 go-service 时也能读取录制产物并转码/上传
|
||||
- ${RECORDING_OUTPUT_DIR:-/home/ykf/jenkins/yuyin/data}:${RECORDING_OUTPUT_DIR:-/home/ykf/jenkins/yuyin/data}
|
||||
restart: unless-stopped
|
||||
|
||||
# ============================================================
|
||||
|
||||
Reference in New Issue
Block a user