Skip to content

Instantly share code, notes, and snippets.

@menski
Last active August 29, 2015 14:11
Show Gist options
  • Save menski/829cad92f935df681ed2 to your computer and use it in GitHub Desktop.
Save menski/829cad92f935df681ed2 to your computer and use it in GitHub Desktop.
Makefile template for docker images
IMAGE_NAME=my/image
TAG=latest
IMAGE=$(IMAGE_NAME):$(TAG)
NAME=my-image
OPTS=--name $(NAME) $(FLAGS)
DOCKER=docker $(DOCKER_OPTS)
REMOVE=true
FORCE_RM=true
PROXY_IP=$(shell $(DOCKER) inspect --format '{{ .NetworkSettings.IPAddress }}' http-proxy 2> /dev/null)
PROXY_PORT=8888
DOCKERFILE=Dockerfile
DOCKERFILE_BAK=$(DOCKERFILE).http.proxy.bak
build:
$(DOCKER) build --rm=$(REMOVE) --force-rm=$(FORCE_RM) -t $(IMAGE) .
proxy:
ifneq ($(strip $(PROXY_IP)),)
cp $(DOCKERFILE) $(DOCKERFILE_BAK)
sed -i "2i ENV http_proxy http://$(PROXY_IP):$(PROXY_PORT)" $(DOCKERFILE)
endif
-$(DOCKER) build --rm=$(REMOVE) --force-rm=$(FORCE_RM) -t $(IMAGE) .
ifneq ($(strip $(PROXY_IP)),)
mv $(DOCKERFILE_BAK) $(DOCKERFILE)
endif
run:
$(DOCKER) run --rm $(OPTS) $(IMAGE)
daemon:
$(DOCKER) run -d $(OPTS) $(IMAGE)
bash:
$(DOCKER) run --rm -it $(OPTS) $(IMAGE) /bin/bash
rmf:
-$(DOCKER) rm -f $(NAME)
rmi:
$(DOCKER) rmi $(IMAGE)
.PHONY: build run daemon bash rmf rmi proxy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment