diff --git a/Dockerfile b/Dockerfile index 08deeef..6e838cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ FROM node:jod-alpine WORKDIR /app -COPY package.json package-lock.json ./ -RUN npm install +COPY package.json package-lock.json tsconfig.json ./ COPY src/ ./src/ -COPY src/personality.json ./src/ +RUN npm install RUN npm run build CMD ["npm", "run", "prod"] diff --git a/docker-compose.yml b/docker-compose.yml index 3f2be9f..e3c55f8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,9 +17,9 @@ services: ipv4_address: ${DISCORD_IP} volumes: - discord:/app/data - - ./src:/app/src # Mount src/ to ensure personality.json is available + - ./src:/app/src redis: - image: redis:alpine # Use alpine for smaller footprint + image: redis:alpine container_name: redis restart: always networks: diff --git a/src/client.ts b/src/client.ts index 9468e05..008a3ff 100644 --- a/src/client.ts +++ b/src/client.ts @@ -16,10 +16,16 @@ const client = new Client({ ] }) -// Initialize Redis connection export const redis = createClient({ - url: `redis://${Keys.redisHost}:${Keys.redisPort}`, -}) + url: `redis://${Keys.redisHost}:${Keys.redisPort}`, + socket: { + reconnectStrategy: (retries) => Math.min(retries * 100, 3000), + }, +}); + +redis.on('error', (err) => console.log(`Redis error: ${err}`)); +redis.on('connect', () => console.log('Redis connected')); +redis.connect().catch((err) => console.log(`Redis connection failed: ${err}`)); // Initialize Ollama connection export const ollama = new Ollama({