fix: remove WORK_DIR variable and simplify Docker commands in makefile
This commit is contained in:
parent
1dd49c7cdc
commit
ce8cc63a94
22
makefile
22
makefile
@ -10,17 +10,12 @@ ifneq (,$(wildcard $(ENV_FILE)))
|
|||||||
export $(shell sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=.*/\1/p' $(ENV_FILE))
|
export $(shell sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=.*/\1/p' $(ENV_FILE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ---- per-environment (env = prod | dev | local) ----
|
|
||||||
WORK_DIR_prod := /var/www/compro-mit
|
|
||||||
WORK_DIR_dev := /var/www/compro-mit
|
|
||||||
WORK_DIR_local := $(CURDIR)
|
|
||||||
COMPOSE_prod := docker-compose.yml
|
COMPOSE_prod := docker-compose.yml
|
||||||
COMPOSE_dev := docker-compose.dev.yml
|
COMPOSE_dev := docker-compose.dev.yml
|
||||||
COMPOSE_local := docker-compose.local.yml
|
COMPOSE_local := docker-compose.local.yml
|
||||||
BRANCH_prod := production
|
BRANCH_prod := production
|
||||||
BRANCH_dev := main
|
BRANCH_dev := main
|
||||||
|
|
||||||
WORK_DIR = $(WORK_DIR_$*)
|
|
||||||
COMPOSE = $(COMPOSE_$*)
|
COMPOSE = $(COMPOSE_$*)
|
||||||
BRANCH = $(BRANCH_$*)
|
BRANCH = $(BRANCH_$*)
|
||||||
DC = sudo docker compose -f $(COMPOSE)
|
DC = sudo docker compose -f $(COMPOSE)
|
||||||
@ -31,7 +26,7 @@ LOG_IMAGE := deploy-log:1
|
|||||||
OUT_FILE = $(LOG_DIR)/$(PROJECT)/.last-deploy.out
|
OUT_FILE = $(LOG_DIR)/$(PROJECT)/.last-deploy.out
|
||||||
HIST_FILE = $(LOG_DIR)/$(PROJECT)/$*.jsonl
|
HIST_FILE = $(LOG_DIR)/$(PROJECT)/$*.jsonl
|
||||||
LOG = sudo docker run --rm \
|
LOG = sudo docker run --rm \
|
||||||
-v $(LOG_DIR):/logs -v $(WORK_DIR):/repo:ro \
|
-v $(LOG_DIR):/logs -v $(CURDIR):/repo:ro \
|
||||||
-e DEPLOY_ACTOR="$$(id -un 2>/dev/null)" $(LOG_IMAGE)
|
-e DEPLOY_ACTOR="$$(id -un 2>/dev/null)" $(LOG_IMAGE)
|
||||||
|
|
||||||
.PHONY: help install run-local log-dir status ps
|
.PHONY: help install run-local log-dir status ps
|
||||||
@ -45,8 +40,7 @@ help: ## Tampilkan daftar perintah
|
|||||||
# ---- deploy ----
|
# ---- deploy ----
|
||||||
deploy-%: log-dir data-dir-% ## Pull + build + up (prod/dev)
|
deploy-%: log-dir data-dir-% ## Pull + build + up (prod/dev)
|
||||||
@$(LOG) start $(PROJECT) $* || true
|
@$(LOG) start $(PROJECT) $* || true
|
||||||
@cd $(WORK_DIR) || exit 1; \
|
@( \
|
||||||
( \
|
|
||||||
sudo git pull https://$(GITLAB_USERNAME):$(GITLAB_PASSWORD)@$(REPO) $(BRANCH) && \
|
sudo git pull https://$(GITLAB_USERNAME):$(GITLAB_PASSWORD)@$(REPO) $(BRANCH) && \
|
||||||
$(DC) build --no-cache --progress=plain && \
|
$(DC) build --no-cache --progress=plain && \
|
||||||
$(DC) up -d --remove-orphans && \
|
$(DC) up -d --remove-orphans && \
|
||||||
@ -59,19 +53,19 @@ deploy-%: log-dir data-dir-% ## Pull + build + up (prod/dev)
|
|||||||
|
|
||||||
# ---- operasional ----
|
# ---- operasional ----
|
||||||
up-%: data-dir-% ## Build + start container
|
up-%: data-dir-% ## Build + start container
|
||||||
@cd $(WORK_DIR) && $(DC) up -d --build --remove-orphans
|
@$(DC) up -d --build --remove-orphans
|
||||||
|
|
||||||
stop-%: ## Stop container
|
stop-%: ## Stop container
|
||||||
@cd $(WORK_DIR) && $(DC) stop
|
@$(DC) stop
|
||||||
|
|
||||||
restart-%: ## Restart container
|
restart-%: ## Restart container
|
||||||
@cd $(WORK_DIR) && $(DC) restart
|
@$(DC) restart
|
||||||
|
|
||||||
logs-%: ## Tail log container
|
logs-%: ## Tail log container
|
||||||
@cd $(WORK_DIR) && $(DC) logs -f --tail=200
|
@$(DC) logs -f --tail=200
|
||||||
|
|
||||||
clean-%: ## Down + hapus image + prune
|
clean-%: ## Down + hapus image + prune
|
||||||
@cd $(WORK_DIR) && $(DC) down -v --rmi local && sudo docker system prune -f
|
@$(DC) down -v --rmi local && sudo docker system prune -f
|
||||||
|
|
||||||
history-%: ## 10 deploy terakhir
|
history-%: ## 10 deploy terakhir
|
||||||
@test -s $(HIST_FILE) && tail -n 10 $(HIST_FILE) | tac || echo "belum ada entri"
|
@test -s $(HIST_FILE) && tail -n 10 $(HIST_FILE) | tac || echo "belum ada entri"
|
||||||
@ -95,4 +89,4 @@ log-dir:
|
|||||||
|
|
||||||
# folder data di-bind ke /app/data; user container (nextjs) ber-UID 1001
|
# folder data di-bind ke /app/data; user container (nextjs) ber-UID 1001
|
||||||
data-dir-%:
|
data-dir-%:
|
||||||
@cd $(WORK_DIR) && sudo mkdir -p data && sudo chown -R 1001:1001 data
|
@sudo mkdir -p data && sudo chown -R 1001:1001 data
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user