79 lines
2.7 KiB
Makefile
79 lines
2.7 KiB
Makefile
# Makefile for panel-web
|
|
|
|
# Docker Registry
|
|
REGISTRY_URL=registry.kxsw.us
|
|
|
|
# Image names
|
|
ADMIN_IMAGE_NAME=ppanel/ppanel-admin-web
|
|
USER_IMAGE_NAME=ppanel/ppanel-user-web
|
|
|
|
# Full image names with registry
|
|
ADMIN_IMAGE=${REGISTRY_URL}/${ADMIN_IMAGE_NAME}
|
|
USER_IMAGE=${REGISTRY_URL}/${USER_IMAGE_NAME}
|
|
|
|
# Version from package.json. Requires jq to be installed.
|
|
VERSION=$(shell jq -r .version package.json)
|
|
|
|
.PHONY: all
|
|
all: build ## Default target
|
|
|
|
# ==============================================================================
|
|
# Build Targets
|
|
# ==============================================================================
|
|
|
|
.PHONY: build
|
|
build: build-admin build-user ## Build both admin and user docker images
|
|
|
|
.PHONY: build-admin
|
|
build-admin: ## Build the admin docker image
|
|
@echo "Building admin image with tags ${ADMIN_IMAGE}:${VERSION} and ${ADMIN_IMAGE}:latest..."
|
|
docker build -f ./docker/ppanel-admin-web/Dockerfile -t ${ADMIN_IMAGE}:${VERSION} -t ${ADMIN_IMAGE}:latest .
|
|
@echo "Successfully built admin image."
|
|
|
|
.PHONY: build-user
|
|
build-user: ## Build the user docker image
|
|
@echo "Building user image with tags ${USER_IMAGE}:${VERSION} and ${USER_IMAGE}:latest..."
|
|
docker build -f ./docker/ppanel-user-web/Dockerfile -t ${USER_IMAGE}:${VERSION} -t ${USER_IMAGE}:latest .
|
|
@echo "Successfully built user image."
|
|
|
|
|
|
# ==============================================================================
|
|
# Publish Targets
|
|
# ==============================================================================
|
|
|
|
.PHONY: push
|
|
push: push-admin push-user ## Push both admin and user images to the registry
|
|
|
|
.PHONY: push-admin
|
|
push-admin: ## Push the admin image to the registry
|
|
@echo "Pushing admin image ${ADMIN_IMAGE}:${VERSION} and ${ADMIN_IMAGE}:latest..."
|
|
docker push ${ADMIN_IMAGE}:${VERSION}
|
|
docker push ${ADMIN_IMAGE}:latest
|
|
@echo "Successfully pushed admin image."
|
|
|
|
.PHONY: push-user
|
|
push-user: ## Push the user image to the registry
|
|
@echo "Pushing user image ${USER_IMAGE}:${VERSION} and ${USER_IMAGE}:latest..."
|
|
docker push ${USER_IMAGE}:${VERSION}
|
|
docker push ${USER_IMAGE}:latest
|
|
@echo "Successfully pushed user image."
|
|
|
|
|
|
# ==============================================================================
|
|
# Other Targets
|
|
# ==============================================================================
|
|
|
|
.PHONY: login
|
|
login: ## Login to the Docker registry
|
|
docker login ${REGISTRY_URL}
|
|
|
|
.PHONY: help
|
|
help: ## Show this help message
|
|
@echo "Usage: make [target]"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
|
|
.PHONY: version
|
|
version: ## Print project version from package.json
|
|
@echo "${VERSION}"
|