From 389b6e992790f6e28b77ca5979c0589e43dbe40a Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie Date: Wed, 4 Apr 2018 16:16:50 -0400 Subject: [PATCH] api/v3/clairpb: generate protobufs in docker This removes the requirement of the build machine having protobuf and any extensions installed. --- api/v3/clairpb/Dockerfile | 7 ++++++ api/v3/clairpb/Makefile | 17 ------------- api/v3/clairpb/generate-protobuf.sh | 28 +++++++++++++++++++++ api/v3/clairpb/run_in_docker.sh | 39 +++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 api/v3/clairpb/Dockerfile delete mode 100644 api/v3/clairpb/Makefile create mode 100755 api/v3/clairpb/generate-protobuf.sh create mode 100755 api/v3/clairpb/run_in_docker.sh diff --git a/api/v3/clairpb/Dockerfile b/api/v3/clairpb/Dockerfile new file mode 100644 index 00000000..a8547e29 --- /dev/null +++ b/api/v3/clairpb/Dockerfile @@ -0,0 +1,7 @@ +FROM golang:alpine + +RUN apk add --update --no-cache git bash protobuf-dev + +RUN go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway +RUN go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger +RUN go get -u github.com/golang/protobuf/protoc-gen-go diff --git a/api/v3/clairpb/Makefile b/api/v3/clairpb/Makefile deleted file mode 100644 index 8c193baa..00000000 --- a/api/v3/clairpb/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -all: - protoc -I/usr/local/include -I. \ - -I${GOPATH}/src \ - -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \ - --go_out=plugins=grpc:. \ - clair.proto - protoc -I/usr/local/include -I. \ - -I${GOPATH}/src \ - -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \ - --grpc-gateway_out=logtostderr=true:. \ - clair.proto - protoc -I/usr/local/include -I. \ - -I${GOPATH}/src \ - -I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \ - --swagger_out=logtostderr=true:. \ - clair.proto - go generate . \ No newline at end of file diff --git a/api/v3/clairpb/generate-protobuf.sh b/api/v3/clairpb/generate-protobuf.sh new file mode 100755 index 00000000..246edfbd --- /dev/null +++ b/api/v3/clairpb/generate-protobuf.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# Copyright 2018 clair authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -o errexit +set -o nounset +set -o pipefail + +DOCKER_REPO_ROOT="$GOPATH/src/github.com/coreos/clair" +IMAGE=${IMAGE:-"quay.io/coreos/clair-gen-proto"} + +docker run --rm -it \ + -v "$DOCKER_REPO_ROOT":"$DOCKER_REPO_ROOT" \ + -w "$DOCKER_REPO_ROOT" \ + "$IMAGE" \ + "./api/v3/clairpb/run_in_docker.sh" diff --git a/api/v3/clairpb/run_in_docker.sh b/api/v3/clairpb/run_in_docker.sh new file mode 100755 index 00000000..28e703ed --- /dev/null +++ b/api/v3/clairpb/run_in_docker.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Copyright 2018 clair authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -o errexit +set -o nounset +set -o pipefail + +protoc -I/usr/include -I. \ + -I"${GOPATH}/src" \ + -I"${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis" \ + --go_out=plugins=grpc:. \ + ./api/v3/clairpb/clair.proto + +protoc -I/usr/include -I. \ + -I"${GOPATH}/src" \ + -I"${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis" \ + --grpc-gateway_out=logtostderr=true:. \ + ./api/v3/clairpb/clair.proto + +protoc -I/usr/include -I. \ + -I"${GOPATH}/src" \ + -I"${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis" \ + --swagger_out=logtostderr=true:. \ + ./api/v3/clairpb/clair.proto + +go generate .