-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
117 lines (100 loc) · 3.13 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
110
111
112
113
114
115
116
117
version: '3.1'
services:
postgres:
container_name: database
image: postgres
ports:
- "${POSTGRES_PORT}:5432"
healthcheck:
test: ["CMD","/bin/bash","/healthcheck.sh"]
interval: 10s
timeout: 5s
retries: 5
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- ./data/:/var/lib/postgresql/data/
- ./config/postgres/schema.pgsql:/docker-entrypoint-initdb.d/init.sql
- ./config/postgres/healthcheck.sh:/healthcheck.sh
casdoor:
container_name: authorization
image: casbin/casdoor:latest
entrypoint: /bin/sh -c './server --createDatabase=true'
ports:
- "${CASDOOR_PORT}:8884"
depends_on:
postgres:
condition: service_healthy
environment:
RUNNING_IN_DOCKER: "true"
dataSourceName: "user=${POSTGRES_USER} password=${POSTGRES_PASSWORD} host=localhost port=${POSTGRES_PORT} sslmode=disable dbname=${POSTGRES_DB}"
volumes:
- ./config/casdoor/app.conf:/conf/app.conf
hardhat:
container_name: contract
image: node:16
working_dir: /usr/src/app
volumes:
- ./SoCity_Smart_Contract:/usr/src/app
- ./backend/assets/contracts:/usr/src/artifacts/contracts
environment:
NODE_ENV : development
ALCHEMY_PRIVATE_KEY : ${ALCHEMY_PRIVATE_KEY}
GOERLI_RPC_URL : ${GOERLI_RPC_URL}
command: npm run ${DEPLOY_MODE}
dev:
container_name: dev_backend
image: node:16
working_dir: /usr/src/app
ports:
- "${NEST_PORT}:3000"
- "9299:9229"
volumes:
- ./backend:/usr/src/app
depends_on:
- postgres
- casdoor
- hardhat
environment:
NODE_ENV : development
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_PORT: ${POSTGRES_PORT}
CASDOOR_CLIENT_ID: ${CASDOOR_CLIENT_ID}
CASDOOR_CLIENT_SECRET: ${CASDOOR_CLIENT_SECRET}
CASDOOR_ORG_NAME: ${CASDOOR_ORG_NAME}
CASDOOR_APP_NAME: ${CASDOOR_APP_NAME}
CASDOOR_CERTIFICATE: ${CASDOOR_CERTIFICATE}
ALCHEMY_PUBLIC_KEY: ${ALCHEMY_PUBLIC_KEY}
ALCHEMY_PRIVATE_KEY: ${ALCHEMY_PRIVATE_KEY}
GOERLI_RPC_URL: ${GOERLI_RPC_URL}
command: "npm run docker:dev"
prod:
container_name: prod_backend
image: node:16
working_dir: /usr/src/app
ports:
- "${NEST_PORT}:3000"
volumes:
- ./backend:/usr/src/app
depends_on:
- postgres
- casdoor
environment:
NODE_ENV : production
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_PORT: ${POSTGRES_PORT}
CASDOOR_CLIENT_ID: ${CASDOOR_CLIENT_ID}
CASDOOR_CLIENT_SECRET: ${CASDOOR_CLIENT_SECRET}
CASDOOR_ORG_NAME: ${CASDOOR_ORG_NAME}
CASDOOR_APP_NAME: ${CASDOOR_APP_NAME}
CASDOOR_CERTIFICATE: ${CASDOOR_CERTIFICATE}
ALCHEMY_PUBLIC_KEY: ${ALCHEMY_PUBLIC_KEY}
ALCHEMY_PRIVATE_KEY: ${ALCHEMY_PRIVATE_KEY}
GOERLI_RPC_URL: ${GOERLI_RPC_URL}
command: "npm run docker:prod"