diff --git a/docker-compose.yml b/docker-compose.yml index 27e84d6..b10dc95 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -73,6 +73,9 @@ services: SERVER_PORT: "8081" # 默认连编排里的 db;要连外部库就在 .env 里覆盖 DB_URL DB_URL: ${DB_URL:-jdbc:postgresql://db:5432/${DB_NAME:-fruitshorts}} + # 限流/缓存用 Redis;容器内 127.0.0.1 是容器自身,必须指向编排里的 redis + REDIS_HOST: ${REDIS_HOST:-redis} + REDIS_PORT: ${REDIS_PORT:-6379} ports: - "8081:8081" volumes: @@ -81,6 +84,8 @@ services: depends_on: db: condition: service_healthy + redis: + condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8081/healthz || exit 1"] interval: 30s @@ -106,6 +111,8 @@ services: # 管理端仅内网,页面上直接播放/下载裸媒资地址(不签播放签名), # 因此这里不启用 /files/episode/** 的签名校验;公开的 app-api 仍保持开启。 FRUITSHORTS_MEDIA_PROTECTED_PREFIXES: "" + REDIS_HOST: ${REDIS_HOST:-redis} + REDIS_PORT: ${REDIS_PORT:-6379} ports: # docs/12-上线检查清单「管理端仅内网」:只对局域网开放;不在路由器做端口转发,公网访问不到 - "8080:8080" @@ -134,12 +141,16 @@ services: env_file: .env environment: DB_URL: ${DB_URL:-jdbc:postgresql://db:5432/${DB_NAME:-fruitshorts}} + REDIS_HOST: ${REDIS_HOST:-redis} + REDIS_PORT: ${REDIS_PORT:-6379} volumes: # 与两个入口同一个媒资根,否则找不到源文件 - ./data/uploads:/data/uploads depends_on: db: condition: service_healthy + redis: + condition: service_healthy healthcheck: # worker 不监听端口(server.port=0),用进程存活判断 test: ["CMD-SHELL", "pgrep -f app.jar >/dev/null || exit 1"]