From fe19859b00cf36c6e621a80a606befffa883bd34 Mon Sep 17 00:00:00 2001 From: John Wesley Date: Mon, 19 Aug 2019 15:07:24 +0200 Subject: [PATCH] Docker makefile (#1553) * makefile for docker deploys * update docs for makefile --- Makefile | 39 ++++++++++++++++++++++++++++++++++++++ docs/deploy-from-docker.md | 7 +++++++ 2 files changed, 46 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0ef19ce --- /dev/null +++ b/Makefile @@ -0,0 +1,39 @@ +## docker-build: Build and tag a docker image +.PHONY: docker-build + +IMAGE := trailofbits/algo +TAG := latest +DOCKERFILE := Dockerfile +CONFIGURATIONS := $(shell pwd) + +docker-build: + docker build \ + -t $(IMAGE):$(TAG) \ + -f $(DOCKERFILE) \ + . + +## docker-deploy: Mount config directory and deploy Algo +.PHONY: docker-deploy + +# '--rm' flag removes the container when finished. +docker-deploy: + docker run \ + --cap-drop=all \ + --rm \ + -it \ + -v $(CONFIGURATIONS):/data \ + $(IMAGE):$(TAG) + +## docker-clean: Remove images and containers. +.PHONY: docker-prune + +docker-prune: + docker images \ + $(IMAGE) |\ + awk '{if (NR>1) print $$3}' |\ + xargs docker rmi + +## docker-all: Build, Deploy, Prune +.PHONY: docker-all + +docker-all: docker-build docker-deploy docker-prune diff --git a/docs/deploy-from-docker.md b/docs/deploy-from-docker.md index 2efd5e3..9e7438a 100644 --- a/docs/deploy-from-docker.md +++ b/docs/deploy-from-docker.md @@ -46,6 +46,13 @@ $ docker run --cap-drop=all -it \ trailofbits/algo:latest ``` +## GNU Makefile for Docker + +You can also build and deploy with a Makefile. This simplifies some of the command strings and opens the door for further user configuration. + +The `Makefile` consists of three targets: `docker-build`, `docker-deploy`, and `docker-prune`. +`docker-all` will run thru all of them. + ## Building Your Own Docker Image You can use the Dockerfile provided in this repository as-is, or modify it to suit your needs. Further instructions on building an image can be found in the [Docker engine](https://docs.docker.com/engine/) documents.