Adding Docker container and changing README

This commit is contained in:
Amber Wiens 2017-08-03 11:50:58 -06:00
parent 1beec25f77
commit 5f0f8f89a6
2 changed files with 39 additions and 0 deletions

22
Dockerfile Normal file
View file

@ -0,0 +1,22 @@
# Builds the Gas scanner with 'docker build' command, and runs Gas on all Go
# files in your current directory with 'docker run' command.
#
# Docker version must be 17.05 or higher to allow multistage build
#
FROM golang:1.8.1-alpine as builder
ENV workspace /go/src/github.com/GoASTScanner/gas
COPY . $workspace
WORKDIR $workspace
RUN go vet $(go list ./... | grep -v /vendor/)
RUN CGO_ENABLED=0 go build -o gas .
FROM alpine:3.6
LABEL MAINTAINER="David Graves <david.graves@hpe.com>"
COPY --from=builder /go/src/github.com/GoASTScanner/gas/gas /
# Mounted directory should be placed into the workdir
CMD /gas $(find . -path ./vendor -prune -o -type f -name "*.go")

View file

@ -112,3 +112,20 @@ file. The output format is controlled by the '-fmt' flag, and the output file is
# Write output in json format to results.json # Write output in json format to results.json
$ gas -fmt=json -out=results.json *.go $ gas -fmt=json -out=results.json *.go
``` ```
### Docker container
A Dockerfile is included with the Gas source code to provide a container that
allows users to easily run Gas on their code. It builds Gas, then runs it on
all Go files in your current directory. Use the following commands to build
and run locally:
To build: (run command in cloned Gas source code directory)
docker build --build-arg http_proxy --build-arg https_proxy
--build-arg no_proxy -t goastscanner/gas:latest .
To run: (run command in desired directory with Go files)
docker run -v $PWD:$PWD --workdir $PWD goastscanner/gas:latest
Note: Docker version 17.05 or later is required (to permit multistage build).
```