Skip to content

Instantly share code, notes, and snippets.

@rcarver
Created September 11, 2015 22:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rcarver/dc79657fe21f8f3db5d6 to your computer and use it in GitHub Desktop.
Save rcarver/dc79657fe21f8f3db5d6 to your computer and use it in GitHub Desktop.
My standard golang + docker development Makefile
check: build test vet lint
test: start-dynamodb
DYNAMODB_HOSTPORT=$$(docker-machine ip ${docker-machine-env}):${dynamodb-port} \
go test ./...
vet:
go vet ./...
lint:
golint ./...
build:
go install .
.PHONY: check test vet lint build
# Docker service commands
# =============================================================================
# A list of all docker services for startall/stopall.
docker-svcs=dynamodb
# Start all docker services.
startall: $(patsubst %,start-%,${docker-svcs})
# Stop all docker services.
stopall: $(patsubst %,stop-%,${docker-svcs})
# Start any docker service by name.
start-%:
$(MAKE) tmp/docker/$*
# Stop any docker service by name.
stop-%:
test -f tmp/docker/$*
docker stop $$(cat tmp/docker/$*)
docker rm $*
rm -f tmp/docker/$*
# Which docker machine env to use.
docker-machine-env=default
# Docker service definitions.
# =============================================================================
dynamodb-port=8000
tmp/docker/dynamodb:
mkdir -p $(dir $@)
docker run --cidfile=$@ --name dynamodb -d -p 8000:${dynamodb-port} dynamodb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment