all repos

onasty @ ac9bab342dae825c63aeeafe0f8af33fbc737850

a one-time notes service

onasty/docker-compose.yml (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
chore: add deploy suite (#210), 8 months ago
1
services:
2
  runtime:
3
    image: onasty:runtime
4
    build:
5
      context: .
6
      dockerfile: runtime.Dockerfile
7
    depends_on:
8
      - builder
9
10
  builder:
11
    image: onasty:builder
12
    build:
13
      context: .
14
      dockerfile: builder.Dockerfile
15
16
  core:
17
    image: onasty:core
18
    container_name: onasty-core
19
    build:
20
      context: .
21
      dockerfile: core.Dockerfile
22
    env_file: .env
23
    ports:
24
      - 8000:8000
25
      - 8001:8001
26
    depends_on:
27
      - runtime
28
      - mailer
29
      - postgres
30
      - redis
31
      - nats
32
33
  mailer:
34
    image: onasty:mailer
35
    container_name: onasty-mailer
36
    build:
37
      context: .
38
      dockerfile: mailer.Dockerfile
39
    env_file: ./mailer/.env
40
    depends_on:
41
      - runtime
42
      - nats
43
44
  seed:
45
    image: onasty:seed
46
    build:
47
      context: .
48
      dockerfile: seed.Dockerfile
49
    entrypoint: ["/seed"]
50
    env_file: .env
51
    profiles: [manual]
52
    depends_on:
53
      - postgres
54
55
  postgres:
56
    image: postgres:16-alpine
57
    container_name: onasty-postgres
58
    environment:
59
      POSTGRES_USER: onasty
60
      POSTGRES_PASSWORD: qwerty
61
      POSTGRES_DB: onasty
62
    volumes:
63
      - .docker/postgres:/var/lib/postgresql/data
64
    ports:
65
      - 5432:5432
66
67
  nats:
68
    image: nats:2.10
69
    container_name: onasty-nats
70
    ports:
71
      - 4222:4222
72
73
  redis:
74
    image: redis:7.4-alpine
75
    container_name: onasty-redis
76
    ports:
77
      - 6379:6379
78
79
  prometheus:
80
    image: prom/prometheus
81
    container_name: onasty-prometheus
82
    user: root
83
    volumes:
84
      - ./.docker/prometheus:/prometheus
85
      - ./infra/prometheus:/etc/prometheus
86
    ports:
87
      - 9090:9090
88
89
  grafana:
90
    image: grafana/grafana:11.1.6
91
    container_name: onasty-grafana
92
    user: root
93
    environment:
94
      - GF_SECURITY_ADMIN_USER=admin
95
      - GF_SECURITY_ADMIN_PASSWORD=admin
96
    volumes:
97
      - ./.docker/grafana:/var/lib/grafana
98
      - ./infra/grafana/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml
99
      - ./infra/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yml
100
      - ./infra/grafana/dashboards:/etc/grafana/provisioning/dashboards
101
    ports:
102
      - 3069:3000
103
104
  loki:
105
    image: grafana/loki:3.2.0
106
    command: ["--pattern-ingester.enabled=true", "-config.file=/etc/loki/config.yaml"]
107
    ports:
108
      - 3100:3100
109
    volumes:
110
      - ./infra/loki/config.yaml:/etc/loki/config.yaml
111
112
  promtail:
113
    image: grafana/promtail:3.0.0
114
    command: -config.file=/etc/promtail/config.yaml
115
    volumes:
116
      - /var/run/docker.sock:/var/run/docker.sock
117
      - ./infra/promtail/config.yaml:/etc/promtail/config.yaml
118
119
  swagger-ui:
120
    image: swaggerapi/swagger-ui
121
    container_name: swagger-ui
122
    ports:
123
      - 8080:8080
124
    volumes:
125
      - ./api/dist/bundle.yml:/usr/share/nginx/html/openapi.yml:ro
126
    environment:
127
      SWAGGER_JSON_URL: openapi.yml
128
    depends_on:
129
      - core