Refactor dockerfile update compose example

This commit is contained in:
Mike Conrad
2025-05-21 16:35:00 -04:00
parent 3c44fcc062
commit f5aceea6fa
4 changed files with 16 additions and 11 deletions

View File

@ -1,4 +1,4 @@
FROM node:20.12.2-alpine3.18 AS base FROM node:22-alpine AS base
# All deps stage # All deps stage
FROM base AS deps FROM base AS deps
@ -6,11 +6,10 @@ WORKDIR /app
ADD package.json package-lock.json ./ ADD package.json package-lock.json ./
RUN npm ci RUN npm ci
FROM node:22 AS dev-deps FROM deps AS develop
WORKDIR /app WORKDIR /app
ADD package.json package-lock.json ./ COPY --from=deps /app/node_modules /app/node_modules
ENV NODE_ENV=development ENV NODE_ENV=development
RUN npm ci
EXPOSE 3333 EXPOSE 3333
# Production only deps stage # Production only deps stage

View File

@ -37,6 +37,7 @@ export default class Replay extends BaseModel {
replays replays
WHERE WHERE
finished_at >= NOW() - INTERVAL '30 days' finished_at >= NOW() - INTERVAL '30 days'
AND "user" ->> 'display_name' LIKE '%@%'
GROUP BY GROUP BY
"user" ->> 'display_name' "user" ->> 'display_name'
) u ) u
@ -55,10 +56,9 @@ export default class Replay extends BaseModel {
ORDER BY ORDER BY
u.total_time_seconds DESC;` 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.version = updatedVersion
results.updatedAt = Date.now() results.updatedAt = Date.now()
await redis.set(`replays:stats:latest_version`, updatedVersion)
await redis.set(`replays:stats:version:${updatedVersion}:results`, JSON.stringify(results)) await redis.set(`replays:stats:version:${updatedVersion}:results`, JSON.stringify(results))
return results return results
} }

View File

@ -1,16 +1,14 @@
--- ---
name: sentry
services: services:
scraper: scraper:
build: build:
context: . context: .
target: dev-deps target: develop
env_file: .env.develop env_file: .env.develop
volumes: volumes:
- ./:/app - ./:/app
- node_modules:/app/node_modules - 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: depends_on:
db: db:
condition: service_healthy condition: service_healthy

View File

@ -23,6 +23,9 @@ services:
- traefik - traefik
- redis - redis
- database - database
depends_on:
db:
condition: service_healthy
db: db:
image: postgres:16 image: postgres:16
environment: environment:
@ -46,10 +49,15 @@ services:
- "traefik.http.routers.grafana.entrypoints=http" - "traefik.http.routers.grafana.entrypoints=http"
- "traefik.http.services.grafana.loadbalancer.server.port=3000" - "traefik.http.services.grafana.loadbalancer.server.port=3000"
- "traefik.http.routers.grafana.service=grafana" - "traefik.http.routers.grafana.service=grafana"
networks: networks:
- traefik - traefik
- database - 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: redis:
image: redis:latest image: redis:latest
networks: networks: