fix: remove WORK_DIR variable and simplify Docker commands in makefile

This commit is contained in:
fadilkun45 2026-09-23 16:17:38 +07:00
parent 1dd49c7cdc
commit ce8cc63a94

View File

@ -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