-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
71 lines (59 loc) · 1.73 KB
/
Makefile
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
# Image name
IMAGE ?= web-call.cc
# Image tag
TAG ?= latest
# Container name
CONT ?= web-call.cc
# Container port
CONT_PORT ?= 8080
# Docker Hub username
DHUB_UNAME ?= tomelam
# Docker platforms
PLATFORMS ?= linux/amd64,linux/arm64
# Digital Ocean droplet username
DROPLET_UNAME ?= root
# Internet-exposed IP address of the Digital Ocean droplet
DROPLET_IP ?= 164.90.211.183
help:
@echo "Please choose one of the following targets:"
@echo "build, run, stop, restart, publish, publish_multi, deploy,"
@echo "list, rm, rmi, clean"
build:
docker build -t $(IMAGE):$(TAG) .
run:
docker run --rm --name $(CONT) -d -p $(CONT_PORT):80 $(IMAGE):$(TAG)
stop:
@if ! docker stop $(CONT); then \
echo $(CONT) is not running.; \
else \
echo $(CONT) stopped.; \
fi;
restart: stop run
publish:
docker tag $(IMAGE):$(TAG) $(DHUB_UNAME)/$(IMAGE):$(TAG)
docker push $(DHUB_UNAME)/$(IMAGE):$(TAG)
publish_multi:
docker buildx build \
--platform $(PLATFORMS) \
-t $(DHUB_UNAME)/$(IMAGE):$(TAG) . --push
deploy:
ssh $(DROPLET_UNAME)@$(DROPLET_IP) " \
docker pull $(DHUB_UNAME)/$(IMAGE):$(TAG); \
docker stop $(CONT); \
echo Stopped container $(CONT); \
docker rm $(CONT); \
echo Removed container $(CONT); \
docker run --name $(CONT) -p $(CONT_PORT):80 \
-d $(DHUB_UNAME)/$(IMAGE):$(TAG); \
echo Started container $(CONT) with $(DHUB_UNAME)/$(IMAGE):$(TAG); \
"
list:
docker images
@echo
docker ps
rm:
docker rm $(CONT)
rmi:
docker rmi $(IMAGE)
clean:
echo docker system prune -a