-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
109 lines (96 loc) · 3.28 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
version: '3.8'
services:
app:
image: ghcr.io/henken-club/prototype-backend:develop@sha256:356fcf302bee276bed7bc584b0a3caad95e2b01d64fa0e00707a6e5d063f8383
ports:
- published: 4000
target: 4000
depends_on:
neo4j:
condition: service_healthy
mysql:
condition: service_healthy
prisma-migrate:
condition: service_completed_successfully
environment:
GRAPHQL_PLAYGROUND: enable
JWT_ACCESS_SECRET: $APP_JWT_ACCESS_SECRET
JWT_REFRESH_SECRET: $APP_JWT_REFRESH_SECRET
IMGPROXY_BASE_URL: $APP_IMGPROXY_BASE_URL
IMGPROXY_KEY: $APP_IMGPROXY_KEY
IMGPROXY_SALT: $APP_IMGPROXY_SALT
BOOKCOVER_SERVICE_URL: bookcover-service:5000
AVATAR_SERVICE_URL: avatar-service:5000
NEO4J_USERNAME: $APP_NEO4J_USERNAME
NEO4J_PASSWORD: $APP_NEO4J_PASSWORD
NEO4J_URL: bolt://neo4j:7687
PRISMA_DATABASE_URL: mysql://$APP_MYSQL_USERNAME:$APP_MYSQL_PASSWORD@mysql:3306/$APP_MYSQL_DATABASE
bookcover-service:
image: ghcr.io/henken-club/bookcover-grpc-service@sha256:691a4bd1fe5f1581038998b738e284981fcb6e39751c28c7e1773e05e35bec1c
environment:
PORT: 5000
IMGPROXY_BASE_URL: $APP_IMGPROXY_BASE_URL
IMGPROXY_KEY: $APP_IMGPROXY_KEY
IMGPROXY_SALT: $APP_IMGPROXY_SALT
avatar-service:
image: ghcr.io/henken-club/avatar-grpc-service@sha256:c41214dd8cfd2e4f6d7d53a251e04ee8a9f3a7c4683a0861f01b027f7e2ea882
environment:
PORT: 5000
IMGPROXY_BASE_URL: $APP_IMGPROXY_BASE_URL
IMGPROXY_KEY: $APP_IMGPROXY_KEY
IMGPROXY_SALT: $APP_IMGPROXY_SALT
imgproxy:
image: darthsim/imgproxy:latest@sha256:dadbd505699a8f19795254e33cf62b0b8f6b461131860ee1e494d8369052da14
ports:
- published: $APP_IMGPROXY_PORT
target: 8080
healthcheck:
test: ['CMD', 'imgproxy', 'health']
timeout: 10s
interval: 10s
retries: 10
environment:
IMGPROXY_KEY: $APP_IMGPROXY_KEY
IMGPROXY_SALT: $APP_IMGPROXY_SALT
neo4j:
image: neo4j:4.2@sha256:6643ca7e43e399ade613e4e430548606f0ae48a865d78ea7dbd2615f725e442e
healthcheck:
test: wget http://localhost:7474/browser -O-
interval: 5s
timeout: 3s
retries: 30
environment:
NEO4J_AUTH: $APP_NEO4J_USERNAME/$APP_NEO4J_PASSWORD
NEO4JLABS_PLUGINS: '["apoc"]'
volumes:
- neo4j-data:/data
- neo4j-logs:/logs
- neo4j-import:/var/lib/neo4j/import
- neo4j-plugins:/plugins
mysql:
image: mysql:8@sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
healthcheck:
test: mysqladmin ping -h localhost
interval: 1s
timeout: 3s
retries: 30
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: $APP_MYSQL_USERNAME
MYSQL_PASSWORD: $APP_MYSQL_PASSWORD
MYSQL_DATABASE: $APP_MYSQL_DATABASE
volumes:
- mysql-data:/var/lib/mysql
prisma-migrate:
image: ghcr.io/henken-club/prototype-backend-prisma-migrate:develop@sha256:3658ce9b253a40782751821a4de1d89c4f37929230eb4b205871e47c61a06194
depends_on:
mysql:
condition: service_healthy
environment:
PRISMA_DATABASE_URL: mysql://$APP_MYSQL_USERNAME:$APP_MYSQL_PASSWORD@mysql:3306/$APP_MYSQL_DATABASE
volumes:
neo4j-data:
neo4j-logs:
neo4j-import:
neo4j-plugins:
mysql-data: