feat: add Docker image build target and deployment docs
This commit is contained in:
29
Makefile
29
Makefile
@@ -1,15 +1,20 @@
|
||||
APP_NAME = ddns-updater
|
||||
BIN_DIR = bin
|
||||
VERSION = 1.0.0
|
||||
BIN_DIR = bin
|
||||
VERSION = 1.0.0
|
||||
|
||||
# Go parameters
|
||||
GOCMD = go
|
||||
GOCMD = go
|
||||
GOBUILD = $(GOCMD) build
|
||||
GOCLEAN = $(GOCMD) clean
|
||||
GORUN = $(GOCMD) run
|
||||
GORUN = $(GOCMD) run
|
||||
|
||||
# Docker image (override: make build-dockerimg IMAGE=kccleoc/ddns-updater:latest)
|
||||
IMAGE ?= kccleoc/ddns-updater:latest
|
||||
|
||||
# Build targets
|
||||
.PHONY: all build clean run init-config install install-linux install-macos service-linux service-macos
|
||||
.PHONY: all build build-all clean run init-config install \
|
||||
install-linux install-macos service-linux service-macos \
|
||||
build-dockerimg push-dockerimg
|
||||
|
||||
all: build
|
||||
|
||||
@@ -22,8 +27,8 @@ build:
|
||||
# Build for multiple platforms
|
||||
build-all:
|
||||
mkdir -p $(BIN_DIR)
|
||||
GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BIN_DIR)/$(APP_NAME)-linux-amd64 main.go
|
||||
GOOS=linux GOARCH=arm64 $(GOBUILD) -o $(BIN_DIR)/$(APP_NAME)-linux-arm64 main.go
|
||||
GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BIN_DIR)/$(APP_NAME)-linux-amd64 main.go
|
||||
GOOS=linux GOARCH=arm64 $(GOBUILD) -o $(BIN_DIR)/$(APP_NAME)-linux-arm64 main.go
|
||||
GOOS=darwin GOARCH=amd64 $(GOBUILD) -o $(BIN_DIR)/$(APP_NAME)-darwin-amd64 main.go
|
||||
GOOS=darwin GOARCH=arm64 $(GOBUILD) -o $(BIN_DIR)/$(APP_NAME)-darwin-arm64 main.go
|
||||
@echo "Built all platform binaries in $(BIN_DIR)/"
|
||||
@@ -90,3 +95,13 @@ service-macos:
|
||||
@echo " launchctl start com.ddns-updater"
|
||||
@echo "\nView logs with:"
|
||||
@echo " tail -f /usr/local/var/log/ddns-updater.log"
|
||||
|
||||
# Build Docker image (parameterized)
|
||||
# Usage: make build-dockerimg IMAGE=kccleoc/ddns-updater:latest
|
||||
build-dockerimg:
|
||||
docker build -t $(IMAGE) .
|
||||
|
||||
# Push Docker image
|
||||
# Usage: make push-dockerimg IMAGE=kccleoc/ddns-updater:latest
|
||||
push-dockerimg:
|
||||
docker push $(IMAGE)
|
||||
|
||||
Reference in New Issue
Block a user