~dricottone/huttese

ref: 6476da76a8eeec0a2a48c53eefcaf3eae20c144a huttese/Makefile -rw-r--r-- 4.2 KiB
6476da76Dominic Ricottone Refactoring 2 years ago
                                                                                
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
# set docker-compliant container management CLI binary
CONMAN=docker

# set fun names for the containers
HUTTESE_NETWORK=holonet
HUTTESE_SRHT=huttsr
HUTTESE_REDIS=huttredis
HUTTESE_POSTGRES=huttpg

# configure redis
REDIS_TARGET=redis:alpine3.15
REDIS_LOCALNAME=my-redis
REDIS_DATADIR=path/to/redis/db

# configure postgres
POSTGRES_TARGET=postgres:alpine3.15
POSTGRES_LOCALNAME=my-postgres
POSTGRES_DATADIR=/home/al_dente/dev/huttese/postgres
POSTGRES_CONF=/home/al_dente/dev/huttese/etc/postgresql/postgresql.conf

# set image tag data
SRHT_LOCALNAME=srht
SRHT_LOCALVERSION=1

cleanup:
	$(CONMAN) network disconnect --force $(HUTTESE_NETWORK) $(HUTTESE_REDIS) >/dev/null 2>&1 || true
	$(CONMAN) network disconnect --force $(HUTTESE_NETWORK) $(HUTTESE_POSTGRES) >/dev/null 2>&1 || true

	$(CONMAN) rm --force $(HUTTESE_REDIS) >/dev/null 2>&1 || true
	$(CONMAN) image rm --force $(REDIS_LOCALNAME):latest >/dev/null 2>&1 || true

	$(CONMAN) rm --force $(HUTTESE_POSTGRES) >/dev/null 2>&1 || true
	$(CONMAN) image rm --force $(POSTGRES_LOCALNAME):latest >/dev/null 2>&1 || true

setup:
	$(CONMAN) inspect $(HUTTESE_NETWORK) >/dev/null 2>&1 \
		|| $(CONMAN) network create $(HUTTESE_NETWORK)

	$(CONMAN) inspect $(REDIS_LOCALNAME) >/dev/null 2>&1 \
		|| $(CONMAN) pull $(REDIS_TARGET) \
		&& $(CONMAN) tag $(REDIS_TARGET) $(REDIS_LOCALNAME)
	$(CONMAN) run --detach --name $(HUTTESE_REDIS) --restart always \
		$(REDIS_LOCALNAME)
	#if I need persistence later:
	#	--mount type=bind,src=$(REDIS_DATADIR),dst=/data \
	#	$(REDIS_LOCALNAME) redis-server --save 60 1 --loglevel warning
	$(CONMAN) network connect --alias $(HUTTESE_REDIS) \
		$(HUTTESE_NETWORK) $(HUTTESE_REDIS)
	# redis is now available at redis://huttredis:6379

	$(CONMAN) inspect $(POSTGRES_LOCALNAME) >/dev/null 2>&1 \
		|| $(CONMAN) pull $(POSTGRES_TARGET) \
		&& $(CONMAN) tag $(POSTGRES_TARGET) $(POSTGRES_LOCALNAME)
	$(CONMAN) run --detach --name $(HUTTESE_POSTGRES) --restart always \
		--env POSTGRES_HOST_AUTH_METHOD=trust \
		--mount type=bind,src=$(POSTGRES_DATADIR),dst=/var/lib/postgresql/data \
		--mount type=bind,src=$(POSTGRES_CONF),dst=/etc/postgresql/postgresql.conf \
		$(POSTGRES_LOCALNAME) -c 'config_file=/etc/postgresql/postgresql.conf'
	$(CONMAN) network connect --alias $(HUTTESE_POSTGRES) \
		$(HUTTESE_NETWORK) $(HUTTESE_POSTGRES)
	# postgres is now available at postgresql://postgres@huttpg:5432

image:
	$(CONMAN) inspect $(SRHT_LOCALNAME) >/dev/null 2>&1 \
		|| $(CONMAN) build \
		--tag $(SRHT_LOCALNAME):latest \
		--tag $(SRHT_LOCALNAME):$(SRHT_LOCALVERSION) \
		sr/

dbinit: image
	$(CONMAN) inspect $(HUTTESE_NETWORK) >/dev/null 2>&1
	$(CONMAN) inspect -f '{{.State.Running}}' $(HUTTESE_POSTGRES) >/dev/null 2>&1

	$(CONMAN) exec \
		$(HUTTESE_POSTGRES) createdb -U postgres meta.sr.ht
	$(CONMAN) run --name $(HUTTESE_SRHT)_dbinit \
		--network $(HUTTESE_NETWORK) \
		$(SRHT_LOCALNAME) metasrht-initdb
	$(CONMAN) rm $(HUTTESE_SRHT)_dbinit

dbmigrate: image
	$(CONMAN) inspect $(HUTTESE_NETWORK) >/dev/null 2>&1
	$(CONMAN) inspect -f '{{.State.Running}}' $(HUTTESE_POSTGRES) >/dev/null 2>&1

	$(CONMAN) run --name $(HUTTESE_SRHT)_dbmigrate \
		--network $(HUTTESE_NETWORK) \
		$(SRHT_LOCALNAME) srht-migrate meta.sr.ht -a upgrade head
	$(CONMAN) run --name $(HUTTESE_SRHT)_dbmigrate \
		--network $(HUTTESE_NETWORK) \
		$(SRHT_LOCALNAME) metasrht-migrate -a upgrade head
	$(CONMAN) rm $(HUTTESE_SRHT)_dbmigrate

start: image
	$(CONMAN) inspect $(HUTTESE_NETWORK) >/dev/null 2>&1
	$(CONMAN) inspect -f '{{.State.Running}}' $(HUTTESE_POSTGRES) >/dev/null 2>&1
	$(CONMAN) inspect -f '{{.State.Running}}' $(HUTTESE_REDIS) >/dev/null 2>&1

	$(CONMAN) run --detach --name $(HUTTESE_SRHT) --restart always \
		--hostname tatooine -p 80:8080 \
		$(SRHT_LOCALNAME)
	$(CONMAN) network connect --alias $(HUTTESE_SRHT) \
		$(HUTTESE_NETWORK) $(HUTTESE_SRHT)

stop:
	$(CONMAN) stop $(SRHT_LOCALNAME)

restart:
	$(CONMAN) inspect $(HUTTESE_NETWORK) >/dev/null 2>&1
	$(CONMAN) inspect -f '{{.State.Running}}' $(HUTTESE_POSTGRES) >/dev/null 2>&1
	$(CONMAN) inspect -f '{{.State.Running}}' $(HUTTESE_REDIS) >/dev/null 2>&1

	$(CONMAN) restart $(SRHT_LOCALNAME)

clean:
	$(CONMAN) rm --force $(SRHT_LOCALNAME) >/dev/null 2>&1 || true
	$(CONMAN) image rm --force $(SRHT_LOCALNAME):latest >/dev/null 2>&1 || true