Files
pypistats.dev/docker-compose.yml

54 lines
1.4 KiB
YAML

services:
db:
image: postgres:latest
environment:
POSTGRES_DB: pypistats
POSTGRES_USER: pypistats
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- dokploy-network
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U pypistats -d pypistats" ]
interval: 5s
timeout: 5s
retries: 20
redis:
image: redis:latest
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
command: [ "redis-server", "--requirepass", "${REDIS_PASSWORD}" ]
networks:
- dokploy-network
healthcheck:
test: [ "CMD-SHELL", "redis-cli -a $REDIS_PASSWORD ping" ]
interval: 5s
timeout: 5s
retries: 20
web:
build:
context: .
args:
DATABASE_URL: postgresql://pypistats:${POSTGRES_PASSWORD}@db:5432/pypistats?schema=public
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
NODE_ENV: production
DATABASE_URL: postgresql://pypistats:${POSTGRES_PASSWORD}@db:5432/pypistats?schema=public
REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379
GOOGLE_APPLICATION_CREDENTIALS_BASE64: ${GOOGLE_APPLICATION_CREDENTIALS_BASE64}
expose:
- 3000
networks:
- dokploy-network
command: [ "sh", "-c", "bun run prisma migrate deploy && bun run build/index.js" ]
volumes:
pgdata: