-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
71 lines (60 loc) · 2.72 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
include .env
export
# .ONESHELL:
.PHONY: create_dir copy_conf create_docker_things set_directory clean run build
.SILENT: create_dir copy_conf create_docker_things set_directory clean run build
ccend=$(shell tput sgr0)
ccbold=$(shell tput bold)
ccgreen=$(shell tput setaf 2)
ccso=$(shell tput smso)
# Create directory for docker volume
create_dir:
@echo "$(ccso)--> Create directory for grafana service $(ccend)"
@mkdir -p "${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/data" \
"${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/config" \
"${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/provisioning" \
"${DEFAULT_CONTAINER_VOLUME_PATH}/postgresql/data"
# Copy configure file
copy_conf:
@echo "$(ccso)--> Copy configure file $(ccend)"
@cp ./workspace/grafana-postgres/grafana/config/grafana.ini "${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/config/"
@cp -r ./workspace/grafana-postgres/grafana/provisioning/* "${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/provisioning/"
@cp ./workspace/grafana-postgres/postgresql/init.sql "${DEFAULT_CONTAINER_VOLUME_PATH}/postgresql/"
# Create docker volume & network
create_docker_things:
@echo "$(ccso)--> Create docker volume & network $(ccend)"
@docker volume create -d local -o type=none -o o=bind -o device="${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/data" "${VOLUME_GRAFANA_DATA}"
@docker volume create -d local -o type=none -o o=bind -o device="${DEFAULT_CONTAINER_VOLUME_PATH}/grafana/provisioning" "${VOLUME_GRAFANA_PROVISIONING}"
@docker volume create -d local -o type=none -o o=bind -o device="${DEFAULT_CONTAINER_VOLUME_PATH}/postgresql/data" "${VOLUME_POSTGRESQL_DATA}"
@docker network create "${NETWORK_GRAFANA}"
# Set directory owner & mode
set_directory:
@echo "$(ccso)--> Set directory $(ccend)"
@chown -R "${USER}:" "${DEFAULT_CONTAINER_VOLUME_PATH}"
@chmod -R 755 "${DEFAULT_CONTAINER_VOLUME_PATH}"
# Clean grafana project
clean:
@echo "$(ccso)--> Removing virtual environment $(ccend)"
@docker compose --env-file ./.env -f ./workspace/grafana-postgres/docker-compose.yml down --remove-orphans
@rm -rf ${DEFAULT_CONTAINER_VOLUME_PATH}
@docker volume rm -f ${VOLUME_GRAFANA_DATA} ${VOLUME_GRAFANA_PROVISIONING} ${VOLUME_POSTGRESQL_DATA}
@docker network rm ${NETWORK_GRAFANA}
# Build grafana project
build:
@echo ""
@echo "$(ccso)--> Build grafana project $(ccend)"
$(MAKE) create_dir && \
$(MAKE) copy_conf && \
$(MAKE) create_docker_things && \
$(MAKE) set_directory
# Run grafana using docker compose
run:
@echo ""
@echo "$(ccso)--> Run docker compose $(ccend)"
@docker compose --env-file ./.env -f ./workspace/grafana-postgres/docker-compose.yml up
# Test
test:
@echo ""
@echo "$(ccso)--> Grafana Health Check $(ccend)"
@curl -f "http://localhost:3000/api/health"; echo;
@curl -f "http://localhost:8081"; echo;