Split Docker config for dev/prod and fix arch-agnostic builds
- Dockerfile: use --platform=$BUILDPLATFORM + ARG TARGETARCH instead of hardcoded GOARCH=arm64, enabling cross-compilation and native builds on both arm64 (M1) and amd64 (prod server) - docker-compose.yml: rewrite for Docker Swarm — image refs, deploy sections, overlay network, no container_name/depends_on conditions, DB/Redis ports not exposed externally - docker-compose.dev.yml: rewrite as self-contained dev compose with build targets, container_name, depends_on, dev-safe defaults - Makefile: switch to docker compose v2, point dev targets at docker-compose.dev.yml, add docker-build-prod target - Delete stale docker/Dockerfile (Go 1.21) and docker/docker-compose.yml Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
51
Makefile
51
Makefile
@@ -3,7 +3,6 @@
|
||||
# Binary names
|
||||
API_BINARY=casera-api
|
||||
WORKER_BINARY=casera-worker
|
||||
ADMIN_BINARY=casera-admin
|
||||
|
||||
# Build flags
|
||||
LDFLAGS=-ldflags "-s -w"
|
||||
@@ -24,12 +23,8 @@ build:
|
||||
build-worker:
|
||||
go build $(LDFLAGS) -o bin/$(WORKER_BINARY) ./cmd/worker
|
||||
|
||||
# Build the admin binary
|
||||
build-admin:
|
||||
go build $(LDFLAGS) -o bin/$(ADMIN_BINARY) ./cmd/admin
|
||||
|
||||
# Build all binaries
|
||||
build-all: build build-worker build-admin
|
||||
build-all: build build-worker
|
||||
|
||||
# Run the API server
|
||||
run:
|
||||
@@ -39,10 +34,6 @@ run:
|
||||
run-worker:
|
||||
go run ./cmd/worker
|
||||
|
||||
# Run the admin
|
||||
run-admin:
|
||||
go run ./cmd/admin
|
||||
|
||||
# Run tests
|
||||
test:
|
||||
go test -v -race -cover ./...
|
||||
@@ -73,24 +64,30 @@ fmt:
|
||||
vet:
|
||||
go vet ./...
|
||||
|
||||
# Docker commands
|
||||
# Docker commands (dev — uses docker-compose.dev.yml)
|
||||
docker-build:
|
||||
docker-compose build
|
||||
docker compose -f docker-compose.dev.yml build
|
||||
|
||||
docker-up:
|
||||
docker-compose up -d
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
|
||||
docker-down:
|
||||
docker-compose down
|
||||
docker compose -f docker-compose.dev.yml down
|
||||
|
||||
docker-logs:
|
||||
docker-compose logs -f
|
||||
docker compose -f docker-compose.dev.yml logs -f
|
||||
|
||||
docker-dev:
|
||||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
||||
docker compose -f docker-compose.dev.yml up --build
|
||||
|
||||
docker-restart:
|
||||
docker-compose down && docker-compose up -d
|
||||
docker compose -f docker-compose.dev.yml down && docker compose -f docker-compose.dev.yml up -d
|
||||
|
||||
# Docker commands (prod — builds production images)
|
||||
docker-build-prod:
|
||||
docker build --target api -t $${REGISTRY:-ghcr.io/treytartt}/casera-api:$${TAG:-latest} .
|
||||
docker build --target worker -t $${REGISTRY:-ghcr.io/treytartt}/casera-worker:$${TAG:-latest} .
|
||||
docker build --target admin -t $${REGISTRY:-ghcr.io/treytartt}/casera-admin:$${TAG:-latest} .
|
||||
|
||||
# Database migrations
|
||||
migrate-up:
|
||||
@@ -116,13 +113,12 @@ help:
|
||||
@echo "Build:"
|
||||
@echo " deps - Install dependencies"
|
||||
@echo " build - Build API binary"
|
||||
@echo " build-all - Build all binaries (API, Worker, Admin)"
|
||||
@echo " build-all - Build all binaries (API, Worker)"
|
||||
@echo " clean - Clean build artifacts"
|
||||
@echo ""
|
||||
@echo "Run:"
|
||||
@echo " run - Run API server"
|
||||
@echo " run-worker - Run background worker"
|
||||
@echo " run-admin - Run admin panel"
|
||||
@echo ""
|
||||
@echo "Test & Lint:"
|
||||
@echo " test - Run tests"
|
||||
@@ -131,13 +127,16 @@ help:
|
||||
@echo " fmt - Format code"
|
||||
@echo " vet - Vet code"
|
||||
@echo ""
|
||||
@echo "Docker:"
|
||||
@echo " docker-build - Build Docker images"
|
||||
@echo " docker-up - Start Docker containers"
|
||||
@echo " docker-down - Stop Docker containers"
|
||||
@echo " docker-logs - View Docker logs"
|
||||
@echo " docker-dev - Start in development mode"
|
||||
@echo " docker-restart- Restart all containers"
|
||||
@echo "Docker (dev):"
|
||||
@echo " docker-build - Build dev Docker images"
|
||||
@echo " docker-up - Start dev containers (detached)"
|
||||
@echo " docker-down - Stop dev containers"
|
||||
@echo " docker-logs - View dev container logs"
|
||||
@echo " docker-dev - Build and start dev containers (foreground)"
|
||||
@echo " docker-restart - Restart dev containers"
|
||||
@echo ""
|
||||
@echo "Docker (prod):"
|
||||
@echo " docker-build-prod - Build production images (api, worker, admin)"
|
||||
@echo ""
|
||||
@echo "Database:"
|
||||
@echo " migrate-up - Run database migrations"
|
||||
|
||||
Reference in New Issue
Block a user