Skip to content

在portainer部署,app服务无法连接到redis #19

@a15355447898a

Description

@a15355447898a

docker compose如下

services:
  claude-code-hub-postgres:
    image: postgres:18
    container_name: claude-code-hub-postgres
    restart: unless-stopped
    env_file: 
      - stack.env
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: claude_code_hub
      PGDATA: /data/pgdata
      TZ: Asia/Shanghai
      PGTZ: Asia/Shanghai
    volumes:
      - /docker-file/claude-code-hub/postgres:/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d claude_code_hub"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 10s
    networks:
      - homelab-network

  claude-code-hub-redis:
    image: redis:7-alpine
    container_name: claude-code-hub-redis
    restart: unless-stopped
    volumes:
      - /docker-file/claude-code-hub/redis:/data
    command: redis-server --appendonly yes
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 3s
      retries: 5
      start_period: 5s
    networks:
      - homelab-network

  claude-code-hub-app:
    image: ghcr.io/ding113/claude-code-hub:latest
    container_name: claude-code-hub-app
    depends_on:
      claude-code-hub-postgres:
        condition: service_healthy
      claude-code-hub-redis:
        condition: service_started
    env_file:
      - stack.env
    environment:
      NODE_ENV: production
      PORT: 23000
      DSN: postgresql://postgres:postgres@claude-code-hub-postgres:5432/claude_code_hub
      REDIS_URL: redis://claude-code-hub-redis:6379
      AUTO_MIGRATE: true
      ENABLE_RATE_LIMIT: true
      SESSION_TTL: 300
      TZ: Asia/Shanghai
    ports:
      - "10580:23000"
    restart: unless-stopped
    networks:
      - homelab-network

networks:
  homelab-network:
    external: true

环境变量文件设置如下

ADMIN_TOKEN=111
AUTO_MIGRATE=true
DSN=postgresql://postgres:postgres@claude-code-hub-postgres:5432/claude_code_hub
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=claude_code_hub
APP_PORT=23000
ENABLE_SECURE_COOKIES=false
ENABLE_RATE_LIMIT=true
SESSION_TTL=300
STORE_SESSION_MESSAGES=false
ENABLE_MULTI_PROVIDER_TYPES=true
REDIS_URL=redis://claude-code-hub-redis:6379

claude-code-hub-app容器的日志如下

   ▲ Next.js 15.5.6

   - Local:        http://cd4486d47ed0:23000

   - Network:      http://cd4486d47ed0:23000

 ✓ Starting...

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=Initializing Claude Code Hub

 ✓ Ready in 397ms

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=Database connection established

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=🔄 Starting database migrations...

{

  severity_local: 'NOTICE',

  severity: 'NOTICE',

  code: '42P06',

  message: 'schema "drizzle" already exists, skipping',

  file: 'schemacmds.c',

  line: '132',

  routine: 'CreateSchemaCommand'

}

{

  severity_local: 'NOTICE',

  severity: 'NOTICE',

  code: '42P07',

  message: 'relation "__drizzle_migrations" already exists, skipping',

  file: 'parse_utilcmd.c',

  line: '208',

  routine: 'transformCreateStmt'

}

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=Database migrations completed successfully!

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=✓ Price table already exists, skipping seed initialization

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 action=auto_cleanup_disabled

2025/10/29 11:19AM ERR pid=1 hostname=cd4486d47ed0 action=schedule_auto_cleanup_error error=Stream isn't writeable and enableOfflineQueue options is false

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=Application ready

2025/10/29 11:19AM WRN pid=1 hostname=cd4486d47ed0 msg=SessionTracker: Redis not ready, skipping initialization

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=[SensitiveWordCache] Reloading sensitive words from database...

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=[Redis] Connected successfully

2025/10/29 11:19AM INF pid=1 hostname=cd4486d47ed0 msg=[SensitiveWordCache] Loaded 0 sensitive words: contains=0, exact=0, regex=0

Error: connect ECONNREFUSED 127.0.0.1:6379

    at <unknown> (Error: connect ECONNREFUSED 127.0.0.1:6379) {

  errno: -111,

  code: 'ECONNREFUSED',

  syscall: 'connect',

  address: '127.0.0.1',

�
  port: 6379

}

 ⨯ unhandledRejection:  Error: connect ECONNREFUSED 127.0.0.1:6379

    at <unknown> (Error: connect ECONNREFUSED 127.0.0.1:6379) {

  errno: -111,

  code: 'ECONNREFUSED',

  syscall: 'connect',

  address: '127.0.0.1',

�
  port: 6379

}

Error: connect ECONNREFUSED 127.0.0.1:6379

    at <unknown> (Error: connect ECONNREFUSED 127.0.0.1:6379) {

  errno: -111,

  code: 'ECONNREFUSED',

  syscall: 'connect',

  address: '127.0.0.1',

�
  port: 6379

}

 ⨯ unhandledRejection:  Error: connect ECONNREFUSED 127.0.0.1:6379

    at <unknown> (Error: connect ECONNREFUSED 127.0.0.1:6379) {

  errno: -111,

  code: 'ECONNREFUSED',

  syscall: 'connect',

  address: '127.0.0.1',

�
  port: 6379

}

我看有一条日志写了连接成功[Redis] Connected successfully 不知道为什么还会去请求127.0.0.1的6379端口

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions