Add two-stage Dockerfile with CGO support
- Build stage: golang:1.24-alpine with vips-dev for CGO image libs - Runtime stage: alpine:3.21 with vips runtime only - Pass VERSION build arg for ldflags embedding - Add 'make docker' target to build image with git version
This commit is contained in:
10
Makefile
10
Makefile
@@ -1,4 +1,4 @@
|
||||
.PHONY: check lint test fmt build clean
|
||||
.PHONY: check lint test fmt build clean docker
|
||||
|
||||
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
||||
LDFLAGS := -X main.Version=$(VERSION)
|
||||
@@ -29,11 +29,15 @@ test:
|
||||
# Build the binary
|
||||
build: ./bin/pixad
|
||||
|
||||
./bin/pixad: ./internal/*/*.go ./cmd/pixad/*.go
|
||||
./bin/pixad: ./internal/*/*.go ./cmd/pixad/*.go ./internal/static/* ./internal/templates/*
|
||||
@echo "Building pixad..."
|
||||
go build -ldflags "$(LDFLAGS)" -o $@ ./cmd/pixad
|
||||
|
||||
# Clean build artifacts
|
||||
clean:
|
||||
rm -rf bin/
|
||||
rm -f data.db
|
||||
rm -rf ./data
|
||||
|
||||
# Build Docker image
|
||||
docker:
|
||||
docker build --build-arg VERSION=$(VERSION) -t pixad:$(VERSION) -t pixad:latest .
|
||||
|
||||
Reference in New Issue
Block a user