|
| 1 | +services: |
| 2 | + postgres: |
| 3 | + image: postgres:16-alpine |
| 4 | + restart: unless-stopped |
| 5 | + env_file: |
| 6 | + - .env |
| 7 | + environment: |
| 8 | + POSTGRES_USER: ${POSTGRES_USER} |
| 9 | + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} |
| 10 | + POSTGRES_DB: ${POSTGRES_DB} |
| 11 | + volumes: |
| 12 | + - postgres_data:/var/lib/postgresql/data |
| 13 | + healthcheck: |
| 14 | + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] |
| 15 | + interval: 5s |
| 16 | + timeout: 5s |
| 17 | + retries: 5 |
| 18 | + |
| 19 | + migrate: |
| 20 | + build: |
| 21 | + context: . |
| 22 | + dockerfile: crates/indexer/Dockerfile |
| 23 | + target: migrate |
| 24 | + restart: "no" |
| 25 | + env_file: |
| 26 | + - .env |
| 27 | + command: ["sqlx", "migrate", "run"] |
| 28 | + depends_on: |
| 29 | + postgres: |
| 30 | + condition: service_healthy |
| 31 | + |
| 32 | + api: |
| 33 | + build: |
| 34 | + context: . |
| 35 | + dockerfile: crates/indexer/Dockerfile |
| 36 | + target: runtime |
| 37 | + env_file: |
| 38 | + - .env |
| 39 | + environment: |
| 40 | + APP_ENVIRONMENT: production |
| 41 | + RUN_MODE: api |
| 42 | + DATABASE__HOST: postgres |
| 43 | + DATABASE__PORT: ${POSTGRES_PORT} |
| 44 | + DATABASE__USERNAME: ${POSTGRES_USER} |
| 45 | + DATABASE__PASSWORD: ${POSTGRES_PASSWORD} |
| 46 | + DATABASE__DATABASE_NAME: ${POSTGRES_DB} |
| 47 | + depends_on: |
| 48 | + migrate: |
| 49 | + condition: service_completed_successfully |
| 50 | + expose: |
| 51 | + - 8000 |
| 52 | + |
| 53 | + indexer: |
| 54 | + build: |
| 55 | + context: . |
| 56 | + dockerfile: crates/indexer/Dockerfile |
| 57 | + target: runtime |
| 58 | + restart: unless-stopped |
| 59 | + env_file: |
| 60 | + - .env |
| 61 | + environment: |
| 62 | + APP_ENVIRONMENT: production |
| 63 | + RUN_MODE: indexer |
| 64 | + DATABASE__HOST: postgres |
| 65 | + DATABASE__PORT: ${POSTGRES_PORT} |
| 66 | + DATABASE__USERNAME: ${POSTGRES_USER} |
| 67 | + DATABASE__PASSWORD: ${POSTGRES_PASSWORD} |
| 68 | + DATABASE__DATABASE_NAME: ${POSTGRES_DB} |
| 69 | + depends_on: |
| 70 | + migrate: |
| 71 | + condition: service_completed_successfully |
| 72 | + |
| 73 | + web: |
| 74 | + build: |
| 75 | + context: . |
| 76 | + dockerfile: web/Dockerfile |
| 77 | + args: |
| 78 | + VITE_API_URL: ${VITE_API_URL} |
| 79 | + VITE_ESPLORA_BASE_URL: ${VITE_ESPLORA_BASE_URL} |
| 80 | + VITE_ESPLORA_EXPLORER_URL: ${VITE_ESPLORA_EXPLORER_URL} |
| 81 | + restart: unless-stopped |
| 82 | + ports: |
| 83 | + - '${WEB_PORT}:80' |
| 84 | + depends_on: |
| 85 | + api: |
| 86 | + condition: service_started |
| 87 | + |
| 88 | +volumes: |
| 89 | + postgres_data: |
0 commit comments