diff --git a/Dockerfile b/Dockerfile index cf529bb..eedd32e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20.12.2-alpine3.18 AS base +FROM node:22-alpine AS base # All deps stage FROM base AS deps @@ -6,11 +6,10 @@ WORKDIR /app ADD package.json package-lock.json ./ RUN npm ci -FROM node:22 AS dev-deps +FROM deps AS develop WORKDIR /app -ADD package.json package-lock.json ./ +COPY --from=deps /app/node_modules /app/node_modules ENV NODE_ENV=development -RUN npm ci EXPOSE 3333 # Production only deps stage diff --git a/app/models/replay.ts b/app/models/replay.ts index 70cbdf6..e47a5c7 100644 --- a/app/models/replay.ts +++ b/app/models/replay.ts @@ -37,6 +37,7 @@ export default class Replay extends BaseModel { replays WHERE finished_at >= NOW() - INTERVAL '30 days' + AND "user" ->> 'display_name' LIKE '%@%' GROUP BY "user" ->> 'display_name' ) u @@ -55,10 +56,9 @@ export default class Replay extends BaseModel { ORDER BY u.total_time_seconds DESC;` ) - const updatedVersion = await redis.incr('replay:stats:latest_version') + const updatedVersion = await redis.incr('replays:stats:latest_version') results.version = updatedVersion results.updatedAt = Date.now() - await redis.set(`replays:stats:latest_version`, updatedVersion) await redis.set(`replays:stats:version:${updatedVersion}:results`, JSON.stringify(results)) return results } diff --git a/docker-compose.override.yml b/compose.override.yml similarity index 63% rename from docker-compose.override.yml rename to compose.override.yml index c94cf45..07ea303 100644 --- a/docker-compose.override.yml +++ b/compose.override.yml @@ -1,16 +1,14 @@ --- -name: sentry services: scraper: build: context: . - target: dev-deps + target: develop env_file: .env.develop volumes: - ./:/app - node_modules:/app/node_modules - command: /bin/bash -c "echo 'hello' && node ace migration:run --force && node ace serve --watch" - + command: /bin/sh -c "node ace migration:run --force && node ace serve --watch" depends_on: db: condition: service_healthy diff --git a/docker-compose.yml b/compose.yml similarity index 85% rename from docker-compose.yml rename to compose.yml index 4da3e39..f3b8c18 100644 --- a/docker-compose.yml +++ b/compose.yml @@ -23,6 +23,9 @@ services: - traefik - redis - database + depends_on: + db: + condition: service_healthy db: image: postgres:16 environment: @@ -46,10 +49,15 @@ services: - "traefik.http.routers.grafana.entrypoints=http" - "traefik.http.services.grafana.loadbalancer.server.port=3000" - "traefik.http.routers.grafana.service=grafana" - networks: - traefik - database + healthcheck: + test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1"] + interval: 10s + timeout: 30s + retries: 5 + start_period: 30s redis: image: redis:latest networks: