-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
52 lines (48 loc) · 1.86 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
version: '3.8'
# Volume - это папка с файлами, которая лежит за пределами контейнеров.
volumes:
postgres-data:
client-dist:
services:
db:
# собираем сервис из образа Postgres
image: postgres:14
# пробрасываем данные для подключения к БД в контейнер
env_file:
- ./.env
environment:
- POSTGRES_HOST=db
volumes:
# сохраняем данные постгреса вне контейнера, чтобы они не потерялись при пересборке
- postgres-data:/var/lib/postgresql/data:delegated
ports:
# внешний порт : внутренний порт
- 5432:5432
container_name: todos-db
server:
build: ./server
env_file:
- ./.env
environment:
- POSTGRES_HOST=db
working_dir: /root/server
depends_on:
# сервер не будет запущен пока не будет запущена БД
- db
volumes:
# сервер будет брать файлы фронтенда из volume client-dist
- client-dist:/root/client/dist:delegated
ports:
# порт 3000 контейнера будет проксироваться на порт 3000 хоста
# внешний - порт хоста : внутренний - порт контейнера
- 3000:${PORT}
container_name: todos-server
client:
# папка, в которой лежит Dockerfile
build: ./client
# здесь будут лежать файлы клиента внутри контейнера
working_dir: /root/client
container_name: todos-client
volumes:
# файлы фронтенда будут собираться в volume client-dist
- client-dist:/root/client/dist:delegated