From 1ddd75d34f052bf6269bf81ba851142cd5521943 Mon Sep 17 00:00:00 2001 From: hhs <386998068@qq.com> Date: Sun, 14 Jun 2026 20:47:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Docker=20Compose=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=B8=8B=20PostgreSQL=20=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/cmd/server/main.go | 4 ++++ backend/internal/config/config.go | 1 + docker-compose.yml | 8 +++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/cmd/server/main.go b/backend/cmd/server/main.go index cdca165..224f666 100644 --- a/backend/cmd/server/main.go +++ b/backend/cmd/server/main.go @@ -56,6 +56,10 @@ func main() { var sessRepo store.SessionRepository if cfg.Storage.Driver == "postgres" { + if cfg.Storage.DSN == "" { + logger.Log.Fatalw("storage.dsn is required when storage.driver is postgres", + "hint", "set CAMTALK_STORAGE_DSN environment variable") + } pool, err := store.NewPostgresPool(ctx, cfg.Storage.DSN) if err != nil { logger.Log.Fatalw("failed to connect to postgres", "error", err) diff --git a/backend/internal/config/config.go b/backend/internal/config/config.go index 1949f0d..b61ad4f 100644 --- a/backend/internal/config/config.go +++ b/backend/internal/config/config.go @@ -152,6 +152,7 @@ func Load() (*Config, error) { v.SetDefault("ai.tts.output_format", "mp3") v.SetDefault("ai.tts.sample_rate", 24000) v.SetDefault("storage.driver", "memory") + v.SetDefault("storage.dsn", "") v.SetDefault("log.level", "info") v.SetDefault("log.format", "console") v.SetDefault("auth.access_ttl", 15) diff --git a/docker-compose.yml b/docker-compose.yml index 55ccdcb..fe4d766 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,7 +23,8 @@ services: - CAMTALK_STORAGE_DSN=postgres://camtalk:camtalk123@postgres:5432/camtalk?sslmode=disable - CAMTALK_AUTH_JWT_SECRET=78uWBBAF8XEQEotKDlrnlnd4y8i4WN3E4zXmNmC8BYQ= depends_on: - - postgres + postgres: + condition: service_healthy networks: - camtalk-net restart: unless-stopped @@ -41,6 +42,11 @@ services: - ./backend/migrations:/docker-entrypoint-initdb.d networks: - camtalk-net + healthcheck: + test: ["CMD-SHELL", "pg_isready -U camtalk -d camtalk"] + interval: 5s + timeout: 3s + retries: 10 restart: unless-stopped volumes: