-
Notifications
You must be signed in to change notification settings - Fork 17
/
docker-compose.yml
65 lines (42 loc) · 1.38 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
version: '3.9'
services:
db:
image: postgres:14-alpine
ports:
- '5432:5432'
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=postgres
volumes:
- ./data/db:/var/lib/postgresql/data/
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- '3000:3000'
volumes:
- ./frontend:/app/frontend
depends_on:
- backend
backend:
build:
context: ./backend
dockerfile: Dockerfile
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=postgres
ports:
- '8000:8000'
volumes:
- ./backend:/app/backend
depends_on:
- db
#We start by mentioning the version of docker-compose.
#And create three services: Database (db), Frontend React (frontend), Backend Django (backend)
#For db we point it to the official postgres image, set environment variables, set volumes, and expose ports 5432:5432
#Also for frontend and backend we provide the build context i.e. the dockerfile to use for building the image expose ports 8000:8000 for backend and 3000:3000 for frontend.
#Set volumes to map ./frontend and ./backend inside the container.
#The depends_on property will ensure that the db is running before starting the backend and backend is running before starting the frontend.