diff --git a/Dockerfile b/Dockerfile index e7f2213..b59ae55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,47 @@ -FROM golang:latest +################# +# Build Step +################# + +FROM golang:latest as build MAINTAINER Ben Yanke -RUN mkdir /app -ADD . /app/ -WORKDIR /app -RUN go build -o main . -CMD ["/app/main"] +RUN mkdir /app /tmp/gocode +ADD . /app/ +WORKDIR /app + +# Required Envs for GO +ENV GOPATH=/tmp/gocode + +# Install deps +RUN go get -d ./... + +# Build +# RUN rm -f /app/bin/glauth64 && GOOS=linux GOARCH=amd64 go build -o /app/bin/glauth64 glauth.go bindata.go ldapbackend.go webapi.go configbackend.go +RUN GOOS=linux GOARCH=amd64 go build -o /app/bin/glauth64 glauth.go bindata.go ldapbackend.go webapi.go configbackend.go + +# RUN for GOOS in darwin linux; do +# for GOARCH in 386 amd64; do +# go build -v -o /app/bin/glauth-$GOOS-$GOARCH +# done +# done + + + +################# +# Test Step +################# + +FROM golang:alpine as run + +MAINTAINER Ben Yanke + +RUN apk --no-cache add ca-certificates + +ADD sample-simple.cfg /app/sample-simple.cfg +WORKDIR /app + +COPY --from=build /app/bin/glauth64 /app/glauth64 + +# CMD /app/glauth64 -c /app/sample-simple.cfg +CMD ["/app/glauth64", "-c", "/app/sample-simple.cfg"] diff --git a/Dockerfile.multistage b/Dockerfile.multistage new file mode 100644 index 0000000..c166d63 --- /dev/null +++ b/Dockerfile.multistage @@ -0,0 +1,16 @@ +# Example file +# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds +# docker build -t alexellis2/href-counter:latest . + + +FROM golang:1.7.3 +WORKDIR /go/src/github.com/alexellis/href-counter/ +RUN go get -d -v golang.org/x/net/html +COPY app.go . +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . + +FROM alpine:latest +RUN apk --no-cache add ca-certificates +WORKDIR /root/ +COPY --from=0 /go/src/github.com/alexellis/href-counter/app . +CMD ["./app"] diff --git a/bin/glauth32 b/bin/glauth32 deleted file mode 100755 index 1fee2c6..0000000 Binary files a/bin/glauth32 and /dev/null differ diff --git a/bin/glauth64 b/bin/glauth64 index 0e20aac..7c4696e 100755 Binary files a/bin/glauth64 and b/bin/glauth64 differ diff --git a/bin/glauthOSX b/bin/glauthOSX deleted file mode 100755 index dc50d38..0000000 Binary files a/bin/glauthOSX and /dev/null differ diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..4bf6ba2 --- /dev/null +++ b/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +img="glauth-dev" + +sudo docker build -f Dockerfile -t $img . + +sudo docker run $img +sudo docker rmi -f $img