From 41f393c09d606715330a2ac6a8af4ba50b5af986 Mon Sep 17 00:00:00 2001 From: hhs <386998068@qq.com> Date: Fri, 19 Jun 2026 23:18:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Redis=20=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E4=B8=BA=E7=A9=BA=E6=97=B6=E5=AE=B9=E5=99=A8=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当 CAMTALK_REDIS_PASSWORD 为空时,--requirepass 缺少参数导致 Redis 解析失败退出,healthcheck 无法执行,后端依赖启动失败。 改为 shell 脚本根据密码是否为空动态决定是否启用认证。 --- docker-compose.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7672fc3..fd012f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,13 +58,21 @@ services: redis: image: docker.m.daocloud.io/library/redis:7-alpine container_name: camtalk-redis - command: redis-server --appendonly yes --requirepass ${CAMTALK_REDIS_PASSWORD:-} + command: > + sh -c ' + if [ -n "$$CAMTALK_REDIS_PASSWORD" ]; then + exec redis-server --appendonly yes --requirepass "$$CAMTALK_REDIS_PASSWORD" + else + exec redis-server --appendonly yes + fi' + environment: + CAMTALK_REDIS_PASSWORD: ${CAMTALK_REDIS_PASSWORD:-} volumes: - redisdata:/data networks: - camtalk-net healthcheck: - test: ["CMD", "redis-cli", "-a", "${CAMTALK_REDIS_PASSWORD:-}", "ping"] + test: ["CMD-SHELL", "if [ -n \"$$CAMTALK_REDIS_PASSWORD\" ]; then redis-cli -a \"$$CAMTALK_REDIS_PASSWORD\" ping; else redis-cli ping; fi"] interval: 5s timeout: 3s retries: 10 -- 2.49.1