From 3fb9fadfb1bccad48ddf7b9a26e46c2943b40cf1 Mon Sep 17 00:00:00 2001 From: "Stephen McQuay (smcquay)" Date: Tue, 17 Apr 2018 11:58:40 -0700 Subject: [PATCH] implements builder pattern for lim --- .gitignore | 1 + Dockerfile | 8 ++++++++ Dockerfile.build | 7 +++++++ Makefile | 19 +++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Dockerfile.build create mode 100644 Makefile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..186137b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM alpine:latest +RUN apk --no-cache add ca-certificates + +WORKDIR / + +COPY build/lim /bin/ + +CMD ["/bin/sh", "-c", "cat /dev/urandom | /bin/lim 16b | xxd"] diff --git a/Dockerfile.build b/Dockerfile.build new file mode 100644 index 0000000..dd87bcc --- /dev/null +++ b/Dockerfile.build @@ -0,0 +1,7 @@ +FROM golang:1.10.1 + +WORKDIR /go/src/mcquay.me/lim + +COPY . . + +RUN CGO_ENABLED=0 GOOS=linux go build -o /usr/local/bin/lim . diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..47dcc99 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +GOFILES := $(shell find . -type f | grep go$$ ) + +build/lim: build ${GOFILES} + docker build -t smcquay/lim:build . -f Dockerfile.build + docker create --name ext smcquay/lim:build + docker cp ext:/usr/local/bin/lim build/ + docker rm -f ext + docker image rm smcquay/lim:build + +build: + @mkdir build + +.PHONY: docker-image +docker-image: build/lim + docker build --no-cache -t smcquay/lim:latest . + +.PHONY: clean +clean: + @rm -rf build