-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
113 lines (88 loc) · 3.99 KB
/
Copy pathMakefile
File metadata and controls
113 lines (88 loc) · 3.99 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
.PHONY: help init chown-volumes chown-volume-src \
up down down-v rebuild rebuild-all \
dev-up dev-down dev-down-v dev-clean dev-rebuild dev-rebuild-clean dev-rebuild-all dev-full-rebuild
.DEFAULT_GOAL := help
PROD = docker compose -f docker-compose.yml
DEV = docker compose
FORCE_RECREATE ?=
RECREATE_FLAG := $(if $(FORCE_RECREATE),--force-recreate ckan,)
SUDO := $(shell [ "$$(id -u)" -eq 0 ] || echo sudo)
# ── Help Text ─────────────────────────────────────────────────────────────────
help:
@echo ""
@echo "Usage: make <target>"
@echo ""
@echo "Setup"
@echo " init Create the docker_volumes directory structure"
@echo " chown-volumes Fix ownership of docker_volumes (uses sudo if needed)"
@echo " chown-volume-src Fix ownership of CKAN_HOME volume (uses sudo if needed)"
@echo ""
@echo "Options"
@echo " FORCE_RECREATE=1 Add --force-recreate to 'up' / 'dev-up' (e.g. make up FORCE_RECREATE=1)"
@echo ""
@echo "Production"
@echo " up Start all production containers (detached)"
@echo " down Stop and remove production containers"
@echo " down-v Stop and remove production containers and volumes"
@echo " rebuild Rebuild the CKAN final layer and restart the container"
@echo " rebuild-all Rebuild all CKAN layers and restart the container"
@echo ""
@echo "Development (includes override with ckan_home volume)"
@echo " dev-up Start all dev containers (detached)"
@echo " dev-down Stop and remove dev containers"
@echo " dev-down-v Stop and remove dev containers and volumes"
@echo " dev-clean Stop dev containers, remove volumes and docker_volumes"
@echo " dev-rebuild Rebuild the CKAN final layer and restart the container"
@echo " dev-rebuild-clean Clean, re-init directories, rebuild final layer and start"
@echo " dev-rebuild-all Rebuild all CKAN layers and restart the container"
@echo " dev-full-rebuild Full clean slate: clean, re-init, rebuild all, and start"
@echo ""
# ── Directories ───────────────────────────────────────────────────────────────
init:
mkdir -p docker_volumes/ckan_config \
docker_volumes/ckan_home \
docker_volumes/ckan_storage \
docker_volumes/pg_data \
docker_volumes/solr_data \
docker_volumes/jupyterhub_data \
docker_volumes/kg_data
chown-volumes:
$(SUDO) chown -Rf $(shell whoami):$(shell id -gn) docker_volumes || true
chown-volume-src:
$(SUDO) chown -Rf $(shell whoami):$(shell id -gn) docker_volumes/ckan_home || true
# ── Production ────────────────────────────────────────────────────────────────
up: init
$(PROD) up -d $(RECREATE_FLAG)
down:
$(PROD) down
down-v:
$(PROD) down -v
rebuild:
bash build.sh
$(MAKE) up FORCE_RECREATE=1
rebuild-all:
bash build.sh --all
$(MAKE) up FORCE_RECREATE=1
# ── Development ───────────────────────────────────────────────────────────────
dev-up: init
$(DEV) up -d $(RECREATE_FLAG)
dev-down:
$(DEV) down
dev-down-v:
$(DEV) down -v
dev-clean: chown-volumes dev-down-v
rm -rf docker_volumes
dev-rebuild: chown-volume-src
rm -rf docker_volumes/ckan_home
bash build.sh
$(MAKE) dev-up FORCE_RECREATE=1
dev-rebuild-clean: dev-clean
bash build.sh
$(MAKE) dev-up
dev-rebuild-all: chown-volume-src
rm -rf docker_volumes/ckan_home
bash build.sh --all
$(MAKE) dev-up FORCE_RECREATE=1
dev-full-rebuild: dev-clean
bash build.sh --all
$(MAKE) dev-up