forked from sidpalas/devops-directive-docker-course
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
119 lines (90 loc) · 2.85 KB
/
Makefile
File metadata and controls
119 lines (90 loc) · 2.85 KB
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
118
119
### DOCKER COMPOSE COMMANDS
.PHONY: compose-build
compose-build:
docker compose build
.PHONY: compose-up
compose-up:
docker compose up
.PHONY: compose-up-build
compose-up-build:
docker compose up --build
.PHONY: compose-down
compose-down:
docker compose down
### DOCKER CLI COMMANDS
DOCKERCONTEXT_DIR:=../05-example-web-application/
DOCKERFILE_DIR:=../06-building-container-images/
.PHONY: docker-build-all
docker-build-all:
docker build -t client-react-vite -f ${DOCKERFILE_DIR}/client-react/Dockerfile.3 ${DOCKERCONTEXT_DIR}/client-react/
docker build -t client-react-ngnix -f ${DOCKERFILE_DIR}/client-react/Dockerfile.5 ${DOCKERCONTEXT_DIR}/client-react/
docker build -t api-node -f ${DOCKERFILE_DIR}/api-node/Dockerfile.7 ${DOCKERCONTEXT_DIR}/api-node/
docker build -t api-golang -f ${DOCKERFILE_DIR}/api-golang/Dockerfile.6 ${DOCKERCONTEXT_DIR}/api-golang/
DATABASE_URL:=postgres://postgres:foobarbaz@db:5432/postgres
.PHONY: docker-run-all
docker-run-all:
echo "$$DOCKER_COMPOSE_NOTE"
# Stop and remove all running containers to avoid name conflicts
$(MAKE) docker-stop
$(MAKE) docker-rm
docker network create my-network
docker run -d \
--name db \
--network my-network \
-e POSTGRES_PASSWORD=foobarbaz \
-v pgdata:/var/lib/postgresql/data \
-p 5432:5432 \
--restart unless-stopped \
postgres:15.1-alpine
docker run -d \
--name api-node \
--network my-network \
-e DATABASE_URL=${DATABASE_URL} \
-p 3000:3000 \
--restart unless-stopped \
api-node
docker run -d \
--name api-golang \
--network my-network \
-e DATABASE_URL=${DATABASE_URL} \
-p 8080:8080 \
--restart unless-stopped \
api-golang
docker run -d \
--name client-react-vite \
--network my-network \
-v ${PWD}/client-react/vite.config.js:/usr/src/app/vite.config.js \
-p 5173:5173 \
--restart unless-stopped \
client-react-vite
docker run -d \
--name client-react-nginx \
--network my-network \
-p 80:8080 \
--restart unless-stopped \
client-react-ngnix
.PHONY: docker-stop
docker-stop:
-docker stop db
-docker stop api-node
-docker stop api-golang
-docker stop client-react-vite
-docker stop client-react-nginx
.PHONY: docker-rm
docker-rm:
-docker container rm db
-docker container rm api-node
-docker container rm api-golang
-docker container rm client-react-vite
-docker container rm client-react-nginx
-docker network rm my-network
define DOCKER_COMPOSE_NOTE
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
❯ NOTE:
This command runs the example app with a bunch
of individual docker run commands. This is much
easier to manage with docker-compose (see
docker-compose.yml and compose make targets above)
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
endef
export DOCKER_COMPOSE_NOTE