-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
54 lines (40 loc) · 1.24 KB
/
Makefile
File metadata and controls
54 lines (40 loc) · 1.24 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
SHELL = /bin/zsh
CURMAKEFILE := $(lastword $(MAKEFILE_LIST))
CURPATH := $(shell realpath $(CURMAKEFILE))
CURDIR := $(dir $(CURPATH))
CURUSER := $(shell whoami)
COMPOSE_USER ?= $(CURUSER)
COMPOSE_PROJECT ?= palo-duro
COMPOSE_IP ?= $(shell IFS=' ' read -r a b c d <<( bc <<< "obase=256; $$(id -u $(CURUSER)) + 127*256^3 + 1" ); echo "$$((a)).$$((b)).$$((c)).$$((d))")
EXEC_USER ?= root
TARGETS := clean build build@web
PREFIX ?= $(COMPOSE_PROJECT)
DOCKER ?= docker
ifdef DEBUG
DOCKER := echo $(DOCKER)
.SILENT: $(TARGETS)
endif
build: build@web
build@web:
$(DOCKER) build $(DOCKER_BUILD_OPTS) -t $(PREFIX)/web .
%@start:
$(DOCKER) run -u $(EXEC_USER) $(FLAGS) --rm --name=$(CURUSER).$(PREFIX).$* $(PREFIX)/$* $(CMD)
%@stop:
$(DOCKER) stop $(CURUSER).$(PREFIX).$*
%@shell:
$(DOCKER) exec -it -u $(EXEC_USER) $(CURUSER).$(PREFIX).$* /bin/bash
clean:
docker container prune -f
docker images -f dangling=true -q | xargs -r docker image rm
compose@up compose@down:
compose@%: @phony@
env \
COMPOSE_IP=$(COMPOSE_IP) \
COMPOSE_USER=$(COMPOSE_USER) \
COMPOSE_PROJECT=$(COMPOSE_PROJECT) \
DOCKER_UID=$$(id -u) \
NODE_MODULES="$$(readlink -f node_modules)" \
docker-compose -p $(CURUSER) $(@:compose@%=%)
.PHONY: $(TARGETS)
.PHONY: @phony@
@phony@: